diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -5,6 +5,13 @@
 ## Unreleased changes
 
 
+## Version 0.6.1.0
+
+-   Split `ELynx.Tools` into separate modules because the package will be reduced.
+-   Remove the following modules from `ELynx.Tools`: `Concurrent`,
+    `LinearAlgebra`, `List`, `Misc`, and `Numeric`.
+
+
 ## Version 0.6.0.0
 
 -   **elynx-tree:** remove parallel folds with layers (`parBranchFoldMapWithLayer`
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -69,13 +69,13 @@
 
 # Get help
 
-For example:
-
-    slynx --help
+    cabal exec slynx -- --help
+    # OR: stack exec slynx -- --help
+    # OR: slynx --help
 
     ELynx Suite version 0.6.0.0.
     Developed by Dominik Schrempf.
-    Compiled on September 3, 2021, at 20:56 pm, UTC.
+    Compiled on September 4, 2021, at 12:58 pm, UTC.
     
     Usage: slynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME] 
                  [-f|--force] [--no-elynx-file] COMMAND
@@ -113,6 +113,7 @@
       - ProteinX (amino acids; including gaps)
       - ProteinS (amino acids; including gaps, and translation stops)
       - ProteinI (amino acids; including gaps, translation stops, and IUPAC codes)
+    
     ELynx
     -----
     A Haskell library and tool set for computational biology. The goal of ELynx is
@@ -126,6 +127,9 @@
     tlynx     Analyze, modify, and simulate phylogenetic trees.
     elynx     Validate and redo past analyses.
     
+    Get help for commands:
+      slynx --help
+    
     Get help for sub commands:
       slynx examine --help
 
@@ -134,11 +138,13 @@
 
 The documentation of sub commands can be accessed separately:
 
-    slynx simulate --help
+    cabal exec slynx -- simulate --help
+    # OR: stack exec slynx -- simulate --help
+    # OR: slynx simulate --help
 
     ELynx Suite version 0.6.0.0.
     Developed by Dominik Schrempf.
-    Compiled on September 3, 2021, at 20:56 pm, UTC.
+    Compiled on September 4, 2021, at 12:58 pm, UTC.
     
     Usage: slynx simulate (-t|--tree-file Name) [-s|--substitution-model MODEL] 
                           [-m|--mixture-model MODEL] [-e|--edm-file NAME] 
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeApplications #-}
+{-# OPTIONS_GHC -Wno-deferred-type-errors #-}
 
 -- |
 -- Module      :  Main
@@ -24,7 +25,9 @@
 import qualified Data.ByteString.Char8 as BS
 import Data.Maybe
 import Data.Version
-import ELynx.Tools
+import ELynx.Tools.InputOutput
+import ELynx.Tools.Options
+import ELynx.Tools.Reproduction
 import Options
 import Options.Applicative
 import Paths_elynx
@@ -37,7 +40,8 @@
 parseProgName :: Value -> J.Parser String
 parseProgName = withObject "progName" $ \o -> o .: "progName"
 
--- TODO: Declaring program names here should not be necessary.
+-- TODO: Create a data type collecting program names.
+
 parseAllR :: String -> Value -> J.Parser AllReproductions
 parseAllR "slynx" v =
   S <$> (parseJSON v :: J.Parser (Reproduction (Arguments S.CommandArguments)))
diff --git a/app/Options.hs b/app/Options.hs
--- a/app/Options.hs
+++ b/app/Options.hs
@@ -22,7 +22,10 @@
   )
 where
 
-import ELynx.Tools
+import ELynx.Tools.InputOutput
+import ELynx.Tools.Options
+import ELynx.Tools.Reproduction
+import GHC.Generics
 import Options.Applicative
 import qualified SLynx.Options as S
 import qualified TLynx.Options as T
diff --git a/elynx.cabal b/elynx.cabal
--- a/elynx.cabal
+++ b/elynx.cabal
@@ -1,6 +1,6 @@
 cabal-version:  2.2
 name:           elynx
-version:        0.6.0.0
+version:        0.6.1.0
 synopsis:       Validate and (optionally) redo ELynx analyses
 description:    Please see the README on GitHub at <https://github.com/dschrempf/elynx>.
 category:       Bioinformatics
