diff --git a/.gitignore b/.gitignore
index 561eed3d104581282fe08520bbb2be08f7c50481..35d2bc9b1cbf60ca1015d5385a9580e0a87aec25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,7 +68,7 @@ instance/
 .scrapy
 
 # Sphinx documentation
-docs/_build/
+docs/source/_build/
 
 # PyBuilder
 target/
diff --git a/.readthedocs.yml b/.readthedocs.yaml
similarity index 79%
rename from .readthedocs.yml
rename to .readthedocs.yaml
index 50d940da68b590a9ed12d3d7f28884278a11b3ae..359acfafd28c5b7bbe094bc83edd41ecaaf7ad73 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.9
   install:
     - requirements: docs/requirements.txt
-    - method: pip
+    - method: setuptools
       path: .
-  system_packages: true
\ No newline at end of file
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 566c4674c0ec9cf4ab0f08b3d31dfaa19b631c2d..ccb88a3790f1d59fef939ac6a4f04724eef92d3f 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,6 +1,3 @@
-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
+Sphinx==3.5.1
+sphinx-rtd-theme==0.5.1
+sphinxcontrib-apidoc==0.3.0
diff --git a/docs/source/api/apollon.aplot.rst b/docs/source/api/apollon.aplot.rst
new file mode 100644
index 0000000000000000000000000000000000000000..82e0150e959172c02ad9137fc0e9e3b38f36922d
--- /dev/null
+++ b/docs/source/api/apollon.aplot.rst
@@ -0,0 +1,7 @@
+apollon.aplot module
+====================
+
+.. automodule:: apollon.aplot
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.audio.rst b/docs/source/api/apollon.audio.rst
new file mode 100644
index 0000000000000000000000000000000000000000..032df5fa65ade3b46cc19f46a1be1f5a8bd9350e
--- /dev/null
+++ b/docs/source/api/apollon.audio.rst
@@ -0,0 +1,7 @@
+apollon.audio module
+====================
+
+.. automodule:: apollon.audio
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.container.rst b/docs/source/api/apollon.container.rst
new file mode 100644
index 0000000000000000000000000000000000000000..29eb7275f7fbeb2f7bb06e8d951e11845c74a5f9
--- /dev/null
+++ b/docs/source/api/apollon.container.rst
@@ -0,0 +1,7 @@
+apollon.container module
+========================
+
+.. automodule:: apollon.container
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.datasets.rst b/docs/source/api/apollon.datasets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d0a604155df3850f40fd8e63bba6ccc19d749cbd
--- /dev/null
+++ b/docs/source/api/apollon.datasets.rst
@@ -0,0 +1,7 @@
+apollon.datasets module
+=======================
+
+.. automodule:: apollon.datasets
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.fractal.rst b/docs/source/api/apollon.fractal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..013847aa9ce6c95fd39951ca6b3b435b40c80876
--- /dev/null
+++ b/docs/source/api/apollon.fractal.rst
@@ -0,0 +1,7 @@
+apollon.fractal module
+======================
+
+.. automodule:: apollon.fractal
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.hmm.poisson.rst b/docs/source/api/apollon.hmm.poisson.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7831d9b77a4453351603324ff36cab20fc83d512
--- /dev/null
+++ b/docs/source/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/api/apollon.hmm.rst b/docs/source/api/apollon.hmm.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8829e76a6851f3766b08e1ea2e11b33e5d9c2399
--- /dev/null
+++ b/docs/source/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/api/apollon.hmm.utilities.rst b/docs/source/api/apollon.hmm.utilities.rst
new file mode 100644
index 0000000000000000000000000000000000000000..6fd1d6b2392a95e528d9b7fa3eb99502ae607680
--- /dev/null
+++ b/docs/source/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/api/apollon.io.io.rst b/docs/source/api/apollon.io.io.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c2609f923ec1e4e9e4258bfe123c7040cc4a1681
--- /dev/null
+++ b/docs/source/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/api/apollon.io.json.rst b/docs/source/api/apollon.io.json.rst
new file mode 100644
index 0000000000000000000000000000000000000000..287a240b9edbbf710da800aa9ec3bfc3b89cc1a8
--- /dev/null
+++ b/docs/source/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/api/apollon.io.rst b/docs/source/api/apollon.io.rst
new file mode 100644
index 0000000000000000000000000000000000000000..297d236e7c1b25736fad3c1fecaea20e008ebc0e
--- /dev/null
+++ b/docs/source/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/api/apollon.onsets.rst b/docs/source/api/apollon.onsets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5f4a444311d11c1ad155dce41c18e8da6731147e
--- /dev/null
+++ b/docs/source/api/apollon.onsets.rst
@@ -0,0 +1,7 @@
+apollon.onsets module
+=====================
+
+.. automodule:: apollon.onsets
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.rst b/docs/source/api/apollon.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f445d6d3928343869583aa241ccac3ad21465443
--- /dev/null
+++ b/docs/source/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/api/apollon.segment.rst b/docs/source/api/apollon.segment.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2bae755a7e30270ee43c93d60d6a50ce2e4d02fa
--- /dev/null
+++ b/docs/source/api/apollon.segment.rst
@@ -0,0 +1,7 @@
+apollon.segment module
+======================
+
+.. automodule:: apollon.segment
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.signal.container.rst b/docs/source/api/apollon.signal.container.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9c6b0f3004619a9ca16de2b837e065b2c3bcbdae
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.critical_bands.rst b/docs/source/api/apollon.signal.critical_bands.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9f64c1526cddcbca0f8d0d937ec81620ff02d422
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.features.rst b/docs/source/api/apollon.signal.features.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d5e161b790dc2462046eaf5121a4f3aea604acc6
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.filter.rst b/docs/source/api/apollon.signal.filter.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7b6f7fa47c2df5b625e75c52c89c09ecffb93d22
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.rst b/docs/source/api/apollon.signal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..577552920adcd82ff2da11b436611410288ea229
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.spectral.rst b/docs/source/api/apollon.signal.spectral.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4dc66ef52e019c590b8fd08feec21b66bd11ad39
--- /dev/null
+++ b/docs/source/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/api/apollon.signal.tools.rst b/docs/source/api/apollon.signal.tools.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ba4471a11aa7322b27d21d33754bace663ec633e
--- /dev/null
+++ b/docs/source/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/api/apollon.som.datasets.rst b/docs/source/api/apollon.som.datasets.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9fa46f21370c8b67062af219a6fee9370c04ddd4
--- /dev/null
+++ b/docs/source/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/api/apollon.som.defaults.rst b/docs/source/api/apollon.som.defaults.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f3a7b5278a9702cf849fc34e854c68ab2e556988
--- /dev/null
+++ b/docs/source/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/api/apollon.som.neighbors.rst b/docs/source/api/apollon.som.neighbors.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d658db39f373fbec2bd03f7eb9ff4db259e283b0
--- /dev/null
+++ b/docs/source/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/api/apollon.som.plot.rst b/docs/source/api/apollon.som.plot.rst
new file mode 100644
index 0000000000000000000000000000000000000000..08fcd8ddc0664cc8f731f8e6f0cc233ea5ec7b60
--- /dev/null
+++ b/docs/source/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/api/apollon.som.rst b/docs/source/api/apollon.som.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5d31d062a4bacb1a6f7cd4667141d9fa04faed4e
--- /dev/null
+++ b/docs/source/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/api/apollon.som.som.rst b/docs/source/api/apollon.som.som.rst
new file mode 100644
index 0000000000000000000000000000000000000000..492bf9acc2b984e528ef40572b138f83665f84bc
--- /dev/null
+++ b/docs/source/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/api/apollon.som.topologies.rst b/docs/source/api/apollon.som.topologies.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5385bb3af337a4ce69e41f395d93ac54121cf289
--- /dev/null
+++ b/docs/source/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/api/apollon.som.utilities.rst b/docs/source/api/apollon.som.utilities.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f8d0c2f3f20165c5a3ab85fd67d81032757b2715
--- /dev/null
+++ b/docs/source/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/api/apollon.tools.rst b/docs/source/api/apollon.tools.rst
new file mode 100644
index 0000000000000000000000000000000000000000..45ef3e4c6d8e306f8b759a111bac3d3f8e7c86d1
--- /dev/null
+++ b/docs/source/api/apollon.tools.rst
@@ -0,0 +1,7 @@
+apollon.tools module
+====================
+
+.. automodule:: apollon.tools
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/apollon.types.rst b/docs/source/api/apollon.types.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2ceb8dcf2a5aa318cb0ae1ad873924168b9d7680
--- /dev/null
+++ b/docs/source/api/apollon.types.rst
@@ -0,0 +1,7 @@
+apollon.types module
+====================
+
+.. automodule:: apollon.types
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/api/modules.rst b/docs/source/api/modules.rst
new file mode 100644
index 0000000000000000000000000000000000000000..52f8518a5f1f5ea33c6deb067f688dab9161fae3
--- /dev/null
+++ b/docs/source/api/modules.rst
@@ -0,0 +1,7 @@
+apollon
+=======
+
+.. toctree::
+   :maxdepth: 4
+
+   apollon
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 01ae16b0ff55f6ccc7ab4dd96f73dcc2575356ee..61a6c46de4b91f89b4bf12fb9a7a00bfdf979dc0 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -63,7 +63,7 @@ html_static_path = ['_static']
 # -- Options for apidoc -----------------------------------------------------
 #
 apidoc_module_dir = '../../src/apollon'
-apidoc_output_dir = 'reference'
+apidoc_output_dir = 'api'
 apidoc_separate_modules = True
 apidoc_module_first = True
 apidoc_full = True
diff --git a/docs/source/index.rst b/docs/source/index.rst
index be6332868d4f4ebf98977143f7357a9f9dd35cd0..9a0cc7cb5141e5c61f7699e65be79563b72db07f 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -20,7 +20,7 @@ Contents
    download
    install
    framework
-   reference/modules
+   api/modules
 
 * :ref:`genindex`
 * :ref:`modindex`