diff --git a/.gitignore b/.gitignore
index dc721543e3e1f6273506c212cd31377a5262437a..088f1be5b18a0579eaee40e3b056f0c7d2ef7aed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,7 +68,10 @@ instance/
 .scrapy
 
 # Sphinx documentation
+<<<<<<< HEAD
 docs/_build/
+=======
+>>>>>>> docs
 docs/source/_build/
 
 # PyBuilder
diff --git a/.readthedocs.yml b/.readthedocs.yaml
similarity index 79%
rename from .readthedocs.yml
rename to .readthedocs.yaml
index 50d940da68b590a9ed12d3d7f28884278a11b3ae..14edd72ddabf18d561b629d21e20f110458b105a 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yaml
@@ -2,10 +2,8 @@
 # Read the Docs configuration file
 # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
 
-# Required
 version: 2
 
-# Build documentation in the docs/ directory with Sphinx
 sphinx:
   builder: html
   configuration: docs/source/conf.py
@@ -16,9 +14,8 @@ formats: all
 
 # Optionally set the version of Python and requirements required to build your docs
 python:
-  version: 3.7
+  version: 3.8
   install:
     - requirements: docs/requirements.txt
-    - method: pip
+    - method: setuptools
       path: .
-  system_packages: true
\ No newline at end of file
diff --git a/README.md b/README.md
index f8efc6f8f7040622f579c9647f451c194301164d..7efe7e23bef3edace25d01a080adbba5199e7fc8 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,14 @@
 # Apollon
-Apollon is a framework for modelling audio feature time series. It comprises
-* low-level audio feature extraction
-* Hidden-Markov Models
+Apollon is a Python framework for audio feature extraction and music similarity estimation. It 
+includes subpackages for
+
+* Audio feature extraction
+* Hidden Markov Models
 * Self-Organizing Map
 
 ## 1. Installation
+### 1.1 Install from PyPi
+The latest version of apollon is available on PyPi. 
 Download apollon or clone this repository. Navigate the package's root directory
 and install apollon using pip.
 ```
diff --git a/docs/Makefile b/docs/Makefile
index 69fe55ecfa9aade66e1412aef0ee7d04a9bcde86..5a1a12e83a9ec29d77f9715dc73e98a93c88b30d 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -7,6 +7,9 @@ SPHINXBUILD   = sphinx-build
 SOURCEDIR     = source
 BUILDDIR      = build
 
+clean:
+	rm -rf build/* source/api/*
+
 # Put it first so that "make" without argument is like "make help".
 help:
 	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -16,4 +19,4 @@ help:
 # Catch-all target: route all unknown targets to Sphinx using the new
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
 %: Makefile
-	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 566c4674c0ec9cf4ab0f08b3d31dfaa19b631c2d..24fd1a73ca842bc4f075944899f8d1d4ca041ab1 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,6 +1,4 @@
-numpy
-scipy
-matplotlib
-soundfile
-sphinxcontrib_apidoc
-https://gitlab.rrz.uni-hamburg.de/bal7668/hmm/-/archive/master/hmm-master.zip
\ No newline at end of file
+numpy==1.20
+sphinx==3.5.1
+sphinx-rtd-theme==0.5.1
+sphinxcontrib-apidoc==0.3.0
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 01ae16b0ff55f6ccc7ab4dd96f73dcc2575356ee..ea543be4779aae038c0bbc998abded986e1832f0 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -12,39 +12,48 @@ import sphinx_rtd_theme
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
+import os
+import sys
+sys.path.insert(0, os.path.abspath('./src/apollon/'))
 
 
 # -- Project information -----------------------------------------------------
 
-project = 'Apollon'
-copyright = '2019, Michael Blaß'
+project = 'apollon'
 author = 'Michael Blaß'
+copyright = '2019, Michael Blaß'
 
 # The full version, including alpha/beta/rc tags
+version = '0.1'
 release = '0.1.3'
-version = '0.1.3'
+
+master_doc = 'index'
 
 
 # -- General configuration ---------------------------------------------------
+source_suffix = {'.rst': 'restructuredtext'}
+language = 'en'
+#nitpicky = True
+numfig = True
+pygments_style = 'sphinx'
 
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'sphinxcontrib.apidoc',
+    'sphinx.ext.autosummary',
     'sphinx.ext.napoleon',
+    'sphinxcontrib.apidoc',
     'sphinx_rtd_theme']
 
+
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = []
+exclude_patterns = ['_build', '.DS_Store']
 
 
 # -- Options for HTML output -------------------------------------------------
@@ -60,10 +69,15 @@ html_theme = 'sphinx_rtd_theme'
 html_static_path = ['_static']
 
 
+# -- Options for autosummary ------------------------------------------------
+#
+
+
+
 # -- Options for apidoc -----------------------------------------------------
 #
 apidoc_module_dir = '../../src/apollon'
-apidoc_output_dir = 'reference'
+apidoc_output_dir = 'generated/api'
 apidoc_separate_modules = True
 apidoc_module_first = True
 apidoc_full = True
@@ -73,7 +87,7 @@ apidoc_full = True
 #
 napoleon_google_docstring = True
 napoleon_numpy_docstring = False
-napoleon_include_init_with_doc = True
+napoleon_include_init_with_doc = False
 napoleon_include_private_with_doc = False
 napoleon_include_special_with_doc = False
 napoleon_use_ivar = True
diff --git a/docs/source/download.rst b/docs/source/download.rst
index c10742c71f88bde73c21a1c956ffcfd7e9b2bbc8..65a72583bfb3e56849f9f4012ee6a6f3de3918b4 100644
--- a/docs/source/download.rst
+++ b/docs/source/download.rst
@@ -1,6 +1,6 @@
+****************************************
 Download
-***************************************
-
+****************************************
 You can either download the source code from the `apollon GitHub repository`_
 or clone it directly with
 
diff --git a/docs/source/framework.rst b/docs/source/framework.rst
index 0acad7e9e498899aadf0c3c8fdca945aef4e43d7..f7741e49ed5b808300d3c9034e0c8cdfed0cdc9c 100644
--- a/docs/source/framework.rst
+++ b/docs/source/framework.rst
@@ -1,16 +1,23 @@
+****************************************
 Framework
-***************************************
+****************************************
+
+.. _fw-fe:
 
 Audio Feature Extraction
-=======================================
+========================================
 Extract some of the most common low-level audio feauters.
 
 
+.. _fw-hmm:
+
 Hidden Markov Model
-=======================================
+========================================
 Estimate Poisson-distributed Hidden Markov Models.
 
 
+.. _fw-som:
+
 Self-Organizing Map
-=======================================
+========================================
 Train some Self-organizing maps.
diff --git a/docs/source/generated/api/apollon.aplot.rst b/docs/source/generated/api/apollon.aplot.rst
new file mode 100644
index 0000000000000000000000000000000000000000..82e0150e959172c02ad9137fc0e9e3b38f36922d
--- /dev/null
+++ b/docs/source/generated/api/apollon.aplot.rst
@@ -0,0 +1,7 @@
+apollon.aplot module
+====================
+
+.. automodule:: apollon.aplot
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.audio.rst b/docs/source/generated/api/apollon.audio.rst
new file mode 100644
index 0000000000000000000000000000000000000000..032df5fa65ade3b46cc19f46a1be1f5a8bd9350e
--- /dev/null
+++ b/docs/source/generated/api/apollon.audio.rst
@@ -0,0 +1,7 @@
+apollon.audio module
+====================
+
+.. automodule:: apollon.audio
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.container.rst b/docs/source/generated/api/apollon.container.rst
new file mode 100644
index 0000000000000000000000000000000000000000..29eb7275f7fbeb2f7bb06e8d951e11845c74a5f9
--- /dev/null
+++ b/docs/source/generated/api/apollon.container.rst
@@ -0,0 +1,7 @@
+apollon.container module
+========================
+
+.. automodule:: apollon.container
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.datasets.rst b/docs/source/generated/api/apollon.datasets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d0a604155df3850f40fd8e63bba6ccc19d749cbd
--- /dev/null
+++ b/docs/source/generated/api/apollon.datasets.rst
@@ -0,0 +1,7 @@
+apollon.datasets module
+=======================
+
+.. automodule:: apollon.datasets
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.fractal.rst b/docs/source/generated/api/apollon.fractal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..013847aa9ce6c95fd39951ca6b3b435b40c80876
--- /dev/null
+++ b/docs/source/generated/api/apollon.fractal.rst
@@ -0,0 +1,7 @@
+apollon.fractal module
+======================
+
+.. automodule:: apollon.fractal
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.hmm.poisson.rst b/docs/source/generated/api/apollon.hmm.poisson.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7831d9b77a4453351603324ff36cab20fc83d512
--- /dev/null
+++ b/docs/source/generated/api/apollon.hmm.poisson.rst
@@ -0,0 +1,7 @@
+apollon.hmm.poisson module
+==========================
+
+.. automodule:: apollon.hmm.poisson
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.hmm.rst b/docs/source/generated/api/apollon.hmm.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8829e76a6851f3766b08e1ea2e11b33e5d9c2399
--- /dev/null
+++ b/docs/source/generated/api/apollon.hmm.rst
@@ -0,0 +1,16 @@
+apollon.hmm package
+===================
+
+.. automodule:: apollon.hmm
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.hmm.poisson
+   apollon.hmm.utilities
diff --git a/docs/source/generated/api/apollon.hmm.utilities.rst b/docs/source/generated/api/apollon.hmm.utilities.rst
new file mode 100644
index 0000000000000000000000000000000000000000..6fd1d6b2392a95e528d9b7fa3eb99502ae607680
--- /dev/null
+++ b/docs/source/generated/api/apollon.hmm.utilities.rst
@@ -0,0 +1,7 @@
+apollon.hmm.utilities module
+============================
+
+.. automodule:: apollon.hmm.utilities
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.io.io.rst b/docs/source/generated/api/apollon.io.io.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c2609f923ec1e4e9e4258bfe123c7040cc4a1681
--- /dev/null
+++ b/docs/source/generated/api/apollon.io.io.rst
@@ -0,0 +1,7 @@
+apollon.io.io module
+====================
+
+.. automodule:: apollon.io.io
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.io.json.rst b/docs/source/generated/api/apollon.io.json.rst
new file mode 100644
index 0000000000000000000000000000000000000000..287a240b9edbbf710da800aa9ec3bfc3b89cc1a8
--- /dev/null
+++ b/docs/source/generated/api/apollon.io.json.rst
@@ -0,0 +1,7 @@
+apollon.io.json module
+======================
+
+.. automodule:: apollon.io.json
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.io.rst b/docs/source/generated/api/apollon.io.rst
new file mode 100644
index 0000000000000000000000000000000000000000..297d236e7c1b25736fad3c1fecaea20e008ebc0e
--- /dev/null
+++ b/docs/source/generated/api/apollon.io.rst
@@ -0,0 +1,16 @@
+apollon.io package
+==================
+
+.. automodule:: apollon.io
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.io.io
+   apollon.io.json
diff --git a/docs/source/generated/api/apollon.onsets.rst b/docs/source/generated/api/apollon.onsets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5f4a444311d11c1ad155dce41c18e8da6731147e
--- /dev/null
+++ b/docs/source/generated/api/apollon.onsets.rst
@@ -0,0 +1,7 @@
+apollon.onsets module
+=====================
+
+.. automodule:: apollon.onsets
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.rst b/docs/source/generated/api/apollon.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f445d6d3928343869583aa241ccac3ad21465443
--- /dev/null
+++ b/docs/source/generated/api/apollon.rst
@@ -0,0 +1,34 @@
+apollon package
+===============
+
+.. automodule:: apollon
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.hmm
+   apollon.io
+   apollon.signal
+   apollon.som
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.aplot
+   apollon.audio
+   apollon.container
+   apollon.datasets
+   apollon.fractal
+   apollon.onsets
+   apollon.segment
+   apollon.tools
+   apollon.types
diff --git a/docs/source/generated/api/apollon.segment.rst b/docs/source/generated/api/apollon.segment.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2bae755a7e30270ee43c93d60d6a50ce2e4d02fa
--- /dev/null
+++ b/docs/source/generated/api/apollon.segment.rst
@@ -0,0 +1,7 @@
+apollon.segment module
+======================
+
+.. automodule:: apollon.segment
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.container.rst b/docs/source/generated/api/apollon.signal.container.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9c6b0f3004619a9ca16de2b837e065b2c3bcbdae
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.container.rst
@@ -0,0 +1,7 @@
+apollon.signal.container module
+===============================
+
+.. automodule:: apollon.signal.container
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.critical_bands.rst b/docs/source/generated/api/apollon.signal.critical_bands.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9f64c1526cddcbca0f8d0d937ec81620ff02d422
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.critical_bands.rst
@@ -0,0 +1,7 @@
+apollon.signal.critical\_bands module
+=====================================
+
+.. automodule:: apollon.signal.critical_bands
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.features.rst b/docs/source/generated/api/apollon.signal.features.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d5e161b790dc2462046eaf5121a4f3aea604acc6
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.features.rst
@@ -0,0 +1,7 @@
+apollon.signal.features module
+==============================
+
+.. automodule:: apollon.signal.features
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.filter.rst b/docs/source/generated/api/apollon.signal.filter.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7b6f7fa47c2df5b625e75c52c89c09ecffb93d22
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.filter.rst
@@ -0,0 +1,7 @@
+apollon.signal.filter module
+============================
+
+.. automodule:: apollon.signal.filter
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.rst b/docs/source/generated/api/apollon.signal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..577552920adcd82ff2da11b436611410288ea229
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.rst
@@ -0,0 +1,20 @@
+apollon.signal package
+======================
+
+.. automodule:: apollon.signal
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.signal.container
+   apollon.signal.critical_bands
+   apollon.signal.features
+   apollon.signal.filter
+   apollon.signal.spectral
+   apollon.signal.tools
diff --git a/docs/source/generated/api/apollon.signal.spectral.rst b/docs/source/generated/api/apollon.signal.spectral.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4dc66ef52e019c590b8fd08feec21b66bd11ad39
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.spectral.rst
@@ -0,0 +1,7 @@
+apollon.signal.spectral module
+==============================
+
+.. automodule:: apollon.signal.spectral
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.signal.tools.rst b/docs/source/generated/api/apollon.signal.tools.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ba4471a11aa7322b27d21d33754bace663ec633e
--- /dev/null
+++ b/docs/source/generated/api/apollon.signal.tools.rst
@@ -0,0 +1,7 @@
+apollon.signal.tools module
+===========================
+
+.. automodule:: apollon.signal.tools
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.datasets.rst b/docs/source/generated/api/apollon.som.datasets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9fa46f21370c8b67062af219a6fee9370c04ddd4
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.datasets.rst
@@ -0,0 +1,7 @@
+apollon.som.datasets module
+===========================
+
+.. automodule:: apollon.som.datasets
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.defaults.rst b/docs/source/generated/api/apollon.som.defaults.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f3a7b5278a9702cf849fc34e854c68ab2e556988
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.defaults.rst
@@ -0,0 +1,7 @@
+apollon.som.defaults module
+===========================
+
+.. automodule:: apollon.som.defaults
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.neighbors.rst b/docs/source/generated/api/apollon.som.neighbors.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d658db39f373fbec2bd03f7eb9ff4db259e283b0
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.neighbors.rst
@@ -0,0 +1,7 @@
+apollon.som.neighbors module
+============================
+
+.. automodule:: apollon.som.neighbors
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.plot.rst b/docs/source/generated/api/apollon.som.plot.rst
new file mode 100644
index 0000000000000000000000000000000000000000..08fcd8ddc0664cc8f731f8e6f0cc233ea5ec7b60
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.plot.rst
@@ -0,0 +1,7 @@
+apollon.som.plot module
+=======================
+
+.. automodule:: apollon.som.plot
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.rst b/docs/source/generated/api/apollon.som.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5d31d062a4bacb1a6f7cd4667141d9fa04faed4e
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.rst
@@ -0,0 +1,21 @@
+apollon.som package
+===================
+
+.. automodule:: apollon.som
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon.som.datasets
+   apollon.som.defaults
+   apollon.som.neighbors
+   apollon.som.plot
+   apollon.som.som
+   apollon.som.topologies
+   apollon.som.utilities
diff --git a/docs/source/generated/api/apollon.som.som.rst b/docs/source/generated/api/apollon.som.som.rst
new file mode 100644
index 0000000000000000000000000000000000000000..492bf9acc2b984e528ef40572b138f83665f84bc
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.som.rst
@@ -0,0 +1,7 @@
+apollon.som.som module
+======================
+
+.. automodule:: apollon.som.som
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.topologies.rst b/docs/source/generated/api/apollon.som.topologies.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5385bb3af337a4ce69e41f395d93ac54121cf289
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.topologies.rst
@@ -0,0 +1,7 @@
+apollon.som.topologies module
+=============================
+
+.. automodule:: apollon.som.topologies
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.som.utilities.rst b/docs/source/generated/api/apollon.som.utilities.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f8d0c2f3f20165c5a3ab85fd67d81032757b2715
--- /dev/null
+++ b/docs/source/generated/api/apollon.som.utilities.rst
@@ -0,0 +1,7 @@
+apollon.som.utilities module
+============================
+
+.. automodule:: apollon.som.utilities
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.tools.rst b/docs/source/generated/api/apollon.tools.rst
new file mode 100644
index 0000000000000000000000000000000000000000..45ef3e4c6d8e306f8b759a111bac3d3f8e7c86d1
--- /dev/null
+++ b/docs/source/generated/api/apollon.tools.rst
@@ -0,0 +1,7 @@
+apollon.tools module
+====================
+
+.. automodule:: apollon.tools
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/apollon.types.rst b/docs/source/generated/api/apollon.types.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2ceb8dcf2a5aa318cb0ae1ad873924168b9d7680
--- /dev/null
+++ b/docs/source/generated/api/apollon.types.rst
@@ -0,0 +1,7 @@
+apollon.types module
+====================
+
+.. automodule:: apollon.types
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/generated/api/modules.rst b/docs/source/generated/api/modules.rst
new file mode 100644
index 0000000000000000000000000000000000000000..52f8518a5f1f5ea33c6deb067f688dab9161fae3
--- /dev/null
+++ b/docs/source/generated/api/modules.rst
@@ -0,0 +1,7 @@
+apollon
+=======
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon
diff --git a/docs/source/index.rst b/docs/source/index.rst
index be6332868d4f4ebf98977143f7357a9f9dd35cd0..8a1922029cdb39bb75e3e508c86ed77978190a22 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -5,9 +5,9 @@
 
 Welcome to the documentation of the apollon feature extraction framework!
 =========================================================================
-*apollon* is a feature extraction and modelling frame work for music data
+*apollon* is a feature extraction and modeling framework for music data
 analysis. It handles low-level audio feature extraction, their aggreagation
-using Hidden Markov models, and comparison by means of the Self-Organizing Map.
+using Hidden Markov models, and comparison by means of the self-organizing map.
 See the :doc:`framework` chapter for gentle introduction to the mentioned
 concepts.
 
@@ -20,7 +20,7 @@ Contents
    download
    install
    framework
-   reference/modules
+   generated/api/modules
 
 * :ref:`genindex`
 * :ref:`modindex`
diff --git a/docs/source/install.rst b/docs/source/install.rst
index fce46e414212a5c73a899e0871918a54141f0b55..a3e9a5b1a0f392378f826e89343c1a9ca4c906d5 100644
--- a/docs/source/install.rst
+++ b/docs/source/install.rst
@@ -2,8 +2,8 @@ Installation
 ***************************************
 apollon can be installed on GNU/Linux, macOS, and Windows. Installation process
 is similar on each of these plaforms. Note, however, that apollon contains
-Python C extension modules, which have to be compile locally for GNU/Linux and
-Windows users. If work on any of those platforms, please make shure that there
+CPython extension modules, which have to be compiled locally for GNU/Linux and
+Windows users. If you work on those platforms, please make shure that there
 is a C compiler set up on your machine; otherwise the installation will fail.
 In the case of macOS, a precompiled wheel is provided for the latest version
 only.
@@ -11,8 +11,8 @@ only.
 
 Install using pip
 =======================================
-The Python packager manager can automatically install download and install
-apollon from pip. Simply run the following command from your terminal:
+The Python packager manager can automatically download and install
+apollon from Pypi. Simply run the following command from your terminal:
 
 .. code-block:: Bash
 
diff --git a/setup.cfg b/setup.cfg
index 205080e369831ccd6ad60cddfd177343ab915428..bbe4c5452dbebe04f4ed43ead21532193fd2c14d 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -35,12 +35,13 @@ scripts =  scripts/apollon
 
 python_requires >= "3.7"
 install_requires = 
+	numpy >= '1.20'
 	jsonschema >= "3.2.0"
 	scipy      >= "0.19.0"
 	matplotlib >= "2"
 	pandas     >= "0.20"
 	soundfile  >= "0.10.2"
-	chainsaddiction @ git+https://gitlab.rrz.uni-hamburg.de/bal7668/chainsaddiction.git
+	chainsaddiction >= '0.1.2' 
 
 [options.packages.find]
 where = src
diff --git a/src/apollon/__init__.py b/src/apollon/__init__.py
index f77bfd5d143b07ff9751e64467ee8a574113de07..e98db76439ebfe5db09eaca2efd60e85e080ab44 100644
--- a/src/apollon/__init__.py
+++ b/src/apollon/__init__.py
@@ -3,7 +3,7 @@
 # mblass@posteo.net
 
 """
-apollon/__init__.py -- Main package initialization.
+Apollon feature extraction framework.
 """
 
 import os as _os
diff --git a/src/apollon/signal/__init__.py b/src/apollon/signal/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0b69af25637ea22f1f00af8d6462e58fa96c1db0 100644
--- a/src/apollon/signal/__init__.py
+++ b/src/apollon/signal/__init__.py
@@ -0,0 +1,15 @@
+"""
+========================================
+Signal processing tools
+========================================
+
+Audio features
+========================================
+
+.. currentmodule:: apollon.signal.features
+
+.. autosummary::
+
+    cdim
+    spectral_centroid
+"""