diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -5,6 +5,13 @@
 ## Unreleased changes
 
 
+## Version 0.6.1.1
+
+-   Remove plotting functionality (gnuplot incompatible with ghc921).
+-   Read files strictly.
+-   Refactor; flatten model hierarchy.
+
+
 ## Version 0.6.1.0
 
 -   Split `ELynx.Tools` into separate modules because the package will be reduced.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 # The ELynx Suite
 
-Version: 0.6.0.0.
+Version: 0.6.1.1.
 Reproducible evolution made easy.
 
 <p align="center"><img src="https://travis-ci.org/dschrempf/elynx.svg?branch=master"/></p>
@@ -69,15 +69,16 @@
 
 # Get help
 
-    cabal exec slynx -- --help
+    cabal run slynx -- --help
     # OR: stack exec slynx -- --help
     # OR: slynx --help
 
-    ELynx Suite version 0.6.0.0.
+    Up to date
+    ELynx Suite version 0.6.1.1.
     Developed by Dominik Schrempf.
-    Compiled on September 4, 2021, at 12:58 pm, UTC.
+    Compiled on February 22, 2022, at 15:10 pm, UTC.
     
-    Usage: slynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME] 
+    Usage: slynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME]
                  [-f|--force] [--no-elynx-file] COMMAND
       Analyze, and simulate multi sequence alignments.
     
@@ -138,18 +139,19 @@
 
 The documentation of sub commands can be accessed separately:
 
-    cabal exec slynx -- simulate --help
+    cabal run slynx -- simulate --help
     # OR: stack exec slynx -- simulate --help
     # OR: slynx simulate --help
 
-    ELynx Suite version 0.6.0.0.
+    Up to date
+    ELynx Suite version 0.6.1.1.
     Developed by Dominik Schrempf.
-    Compiled on September 4, 2021, at 12:58 pm, UTC.
+    Compiled on February 22, 2022, at 15:10 pm, UTC.
     
-    Usage: slynx simulate (-t|--tree-file Name) [-s|--substitution-model MODEL] 
-                          [-m|--mixture-model MODEL] [-e|--edm-file NAME] 
-                          [-p|--siteprofile-files NAMES] 
-                          [-w|--mixture-model-weights "[DOUBLE,DOUBLE,...]"] 
+    Usage: slynx simulate (-t|--tree-file Name) [-s|--substitution-model MODEL]
+                          [-m|--mixture-model MODEL] [-e|--edm-file NAME]
+                          [-p|--siteprofile-files NAMES]
+                          [-w|--mixture-model-weights "[DOUBLE,DOUBLE,...]"]
                           [-g|--gamma-rate-heterogeneity "(NCAT,SHAPE)"]
                           (-l|--length NUMBER) [-S|--seed [INT]]
       Simulate multi sequence alignments.
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,3 +0,0 @@
-import Distribution.Simple
-
-main = defaultMain
diff --git a/slynx.cabal b/slynx.cabal
--- a/slynx.cabal
+++ b/slynx.cabal
@@ -1,6 +1,6 @@
-cabal-version:  2.2
+cabal-version:  3.0
 name:           slynx
-version:        0.6.1.0
+version:        0.6.1.1
 synopsis:       Handle molecular sequences
 description:    Examine, modify, and simulate molecular sequences in a reproducible way. Please see the README on GitHub at <https://github.com/dschrempf/elynx>.
 category:       Bioinformatics
diff --git a/src/SLynx/Concatenate/Concatenate.hs b/src/SLynx/Concatenate/Concatenate.hs
--- a/src/SLynx/Concatenate/Concatenate.hs
+++ b/src/SLynx/Concatenate/Concatenate.hs
@@ -18,8 +18,8 @@
 where
 
 import Control.Monad.Trans.Reader
-import qualified ELynx.Data.Sequence.Sequence as S
-import ELynx.Export.Sequence.Fasta
+import ELynx.Sequence.Export.Fasta
+import qualified ELynx.Sequence.Sequence as S
 import ELynx.Tools.ELynx
 import ELynx.Tools.Environment
 import SLynx.Concatenate.Options
diff --git a/src/SLynx/Concatenate/Options.hs b/src/SLynx/Concatenate/Options.hs
--- a/src/SLynx/Concatenate/Options.hs
+++ b/src/SLynx/Concatenate/Options.hs
@@ -19,7 +19,7 @@
 
 import Control.Applicative
 import Data.Aeson
-import ELynx.Data.Alphabet.Alphabet
+import ELynx.Alphabet.Alphabet
 import ELynx.Tools.Reproduction
 import GHC.Generics
 import Options.Applicative
diff --git a/src/SLynx/Examine/Examine.hs b/src/SLynx/Examine/Examine.hs
--- a/src/SLynx/Examine/Examine.hs
+++ b/src/SLynx/Examine/Examine.hs
@@ -22,11 +22,11 @@
 import qualified Data.ByteString.Lazy.Char8 as BL
 import qualified Data.Set as S
 import qualified Data.Vector.Unboxed as V
-import qualified ELynx.Data.Alphabet.Alphabet as A
-import qualified ELynx.Data.Alphabet.Character as C
-import qualified ELynx.Data.Sequence.Alignment as M
-import qualified ELynx.Data.Sequence.Distance as D
-import qualified ELynx.Data.Sequence.Sequence as Seq
+import qualified ELynx.Alphabet.Alphabet as A
+import qualified ELynx.Alphabet.Character as C
+import qualified ELynx.Sequence.Alignment as M
+import qualified ELynx.Sequence.Distance as D
+import qualified ELynx.Sequence.Sequence as Seq
 import ELynx.Tools.ByteString
 import ELynx.Tools.ELynx
 import ELynx.Tools.Environment
diff --git a/src/SLynx/Examine/Options.hs b/src/SLynx/Examine/Options.hs
--- a/src/SLynx/Examine/Options.hs
+++ b/src/SLynx/Examine/Options.hs
@@ -18,7 +18,7 @@
 where
 
 import Data.Aeson
-import ELynx.Data.Alphabet.Alphabet
+import ELynx.Alphabet.Alphabet
 import ELynx.Tools.Reproduction
 import GHC.Generics
 import Options.Applicative
diff --git a/src/SLynx/Filter/Filter.hs b/src/SLynx/Filter/Filter.hs
--- a/src/SLynx/Filter/Filter.hs
+++ b/src/SLynx/Filter/Filter.hs
@@ -22,9 +22,9 @@
 import Control.Monad.Trans.Reader
 import qualified Data.ByteString.Lazy.Char8 as BL
 import Data.Maybe (fromMaybe)
-import qualified ELynx.Data.Sequence.Alignment as M
-import qualified ELynx.Data.Sequence.Sequence as S
-import ELynx.Export.Sequence.Fasta
+import qualified ELynx.Sequence.Alignment as M
+import ELynx.Sequence.Export.Fasta
+import qualified ELynx.Sequence.Sequence as S
 import ELynx.Tools.ELynx
 import ELynx.Tools.Environment
 import ELynx.Tools.Logger
diff --git a/src/SLynx/Filter/Options.hs b/src/SLynx/Filter/Options.hs
--- a/src/SLynx/Filter/Options.hs
+++ b/src/SLynx/Filter/Options.hs
@@ -21,7 +21,7 @@
 
 import Control.Applicative
 import Data.Aeson
-import ELynx.Data.Alphabet.Alphabet
+import ELynx.Alphabet.Alphabet
 import ELynx.Tools.Reproduction
 import GHC.Generics
 import Options.Applicative
diff --git a/src/SLynx/Options.hs b/src/SLynx/Options.hs
--- a/src/SLynx/Options.hs
+++ b/src/SLynx/Options.hs
@@ -14,7 +14,7 @@
 module SLynx.Options (CommandArguments (..)) where
 
 import Data.Aeson
-import ELynx.Data.Alphabet.Alphabet
+import ELynx.Alphabet.Alphabet
 import ELynx.Tools.Options
 import ELynx.Tools.Reproduction
 import GHC.Generics
diff --git a/src/SLynx/Simulate/PhyloModel.hs b/src/SLynx/Simulate/PhyloModel.hs
--- a/src/SLynx/Simulate/PhyloModel.hs
+++ b/src/SLynx/Simulate/PhyloModel.hs
@@ -23,16 +23,16 @@
 import Data.Either (rights)
 import Data.Maybe
 import qualified Data.Vector as V
-import ELynx.Data.MarkovProcess.AminoAcid
-import ELynx.Data.MarkovProcess.CXXModels
-import qualified ELynx.Data.MarkovProcess.MixtureModel as M
-import ELynx.Data.MarkovProcess.Nucleotide
-import qualified ELynx.Data.MarkovProcess.PhyloModel as P
-import ELynx.Data.MarkovProcess.RateMatrix
-import qualified ELynx.Data.MarkovProcess.SubstitutionModel as S
 import ELynx.Import.MarkovProcess.EDMModelPhylobayes
   ( EDMComponent,
   )
+import ELynx.MarkovProcess.AminoAcid
+import ELynx.MarkovProcess.CXXModels
+import qualified ELynx.MarkovProcess.MixtureModel as M
+import ELynx.MarkovProcess.Nucleotide
+import qualified ELynx.MarkovProcess.PhyloModel as P
+import ELynx.MarkovProcess.RateMatrix
+import qualified ELynx.MarkovProcess.SubstitutionModel as S
 import ELynx.Tools.Equality
 import ELynx.Tools.InputOutput
 import Numeric.LinearAlgebra
diff --git a/src/SLynx/Simulate/Simulate.hs b/src/SLynx/Simulate/Simulate.hs
--- a/src/SLynx/Simulate/Simulate.hs
+++ b/src/SLynx/Simulate/Simulate.hs
@@ -30,19 +30,19 @@
 import qualified Data.Vector as V
 import qualified Data.Vector.Storable as VS
 import qualified Data.Vector.Unboxed as U
-import ELynx.Data.Alphabet.Alphabet as A
-import qualified ELynx.Data.MarkovProcess.AminoAcid as MA
-import ELynx.Data.MarkovProcess.GammaRateHeterogeneity
-import qualified ELynx.Data.MarkovProcess.MixtureModel as MM
-import qualified ELynx.Data.MarkovProcess.PhyloModel as MP
-import qualified ELynx.Data.MarkovProcess.RateMatrix as MR
-import qualified ELynx.Data.MarkovProcess.SubstitutionModel as MS
-import qualified ELynx.Data.Sequence.Sequence as Seq hiding
-  ( name,
-  )
-import ELynx.Export.Sequence.Fasta
+import ELynx.Alphabet.Alphabet as A
 import ELynx.Import.MarkovProcess.EDMModelPhylobayes
 import ELynx.Import.MarkovProcess.SiteprofilesPhylobayes
+import qualified ELynx.MarkovProcess.AminoAcid as MA
+import ELynx.MarkovProcess.GammaRateHeterogeneity
+import qualified ELynx.MarkovProcess.MixtureModel as MM
+import qualified ELynx.MarkovProcess.PhyloModel as MP
+import qualified ELynx.MarkovProcess.RateMatrix as MR
+import qualified ELynx.MarkovProcess.SubstitutionModel as MS
+import ELynx.Sequence.Export.Fasta
+import qualified ELynx.Sequence.Sequence as Seq hiding
+  ( name,
+  )
 import ELynx.Simulate.MarkovProcessAlongTree
 import ELynx.Tools.ByteString
 import ELynx.Tools.Definitions
diff --git a/src/SLynx/SubSample/Options.hs b/src/SLynx/SubSample/Options.hs
--- a/src/SLynx/SubSample/Options.hs
+++ b/src/SLynx/SubSample/Options.hs
@@ -23,7 +23,7 @@
 import qualified Data.Text.Lazy as LT
 import qualified Data.Text.Lazy.Builder as LT
 import qualified Data.Text.Lazy.Builder.Int as LT
-import ELynx.Data.Alphabet.Alphabet
+import ELynx.Alphabet.Alphabet
 import ELynx.Tools.Options
 import ELynx.Tools.Reproduction
 import GHC.Generics
diff --git a/src/SLynx/SubSample/SubSample.hs b/src/SLynx/SubSample/SubSample.hs
--- a/src/SLynx/SubSample/SubSample.hs
+++ b/src/SLynx/SubSample/SubSample.hs
@@ -20,8 +20,8 @@
 import Control.Monad
 import Control.Monad.IO.Class
 import Control.Monad.Trans.Reader (ask)
-import qualified ELynx.Data.Sequence.Alignment as M
-import ELynx.Export.Sequence.Fasta
+import qualified ELynx.Sequence.Alignment as M
+import ELynx.Sequence.Export.Fasta
 import ELynx.Tools.ELynx
 import ELynx.Tools.Environment
 import ELynx.Tools.Logger
diff --git a/src/SLynx/Tools.hs b/src/SLynx/Tools.hs
--- a/src/SLynx/Tools.hs
+++ b/src/SLynx/Tools.hs
@@ -22,9 +22,9 @@
 where
 
 import Control.Monad.IO.Class
-import ELynx.Data.Alphabet.Alphabet
-import ELynx.Data.Sequence.Sequence
-import ELynx.Import.Sequence.Fasta
+import ELynx.Alphabet.Alphabet
+import ELynx.Sequence.Import.Fasta
+import ELynx.Sequence.Sequence
 import ELynx.Tools.InputOutput
 import ELynx.Tools.Logger
 import Options.Applicative
diff --git a/src/SLynx/Translate/Options.hs b/src/SLynx/Translate/Options.hs
--- a/src/SLynx/Translate/Options.hs
+++ b/src/SLynx/Translate/Options.hs
@@ -19,8 +19,8 @@
 
 import Data.Aeson
 import Data.List
-import ELynx.Data.Alphabet.Alphabet
-import ELynx.Data.Character.Codon
+import ELynx.Alphabet.Alphabet
+import ELynx.Character.Codon
 import ELynx.Tools.Reproduction
 import GHC.Generics
 import Options.Applicative
diff --git a/src/SLynx/Translate/Translate.hs b/src/SLynx/Translate/Translate.hs
--- a/src/SLynx/Translate/Translate.hs
+++ b/src/SLynx/Translate/Translate.hs
@@ -18,10 +18,10 @@
 where
 
 import Control.Monad.Trans.Reader
-import ELynx.Data.Character.Codon
-import ELynx.Data.Sequence.Sequence
-import ELynx.Data.Sequence.Translate
-import ELynx.Export.Sequence.Fasta
+import ELynx.Character.Codon
+import ELynx.Sequence.Export.Fasta
+import ELynx.Sequence.Sequence
+import ELynx.Sequence.Translate
 import ELynx.Tools.ELynx
 import ELynx.Tools.Environment
 import ELynx.Tools.Logger
