diff --git a/documentation/DoxyLayout.in b/documentation/DoxyLayout.in
new file mode 100644
index 0000000000000000000000000000000000000000..0e13429a8caefac904a071b9cea5595dd49f8d12
--- /dev/null
+++ b/documentation/DoxyLayout.in
@@ -0,0 +1,196 @@
+
+<doxygenlayout version="1.0">
+  <!-- Generated by doxygen 1.8.14 -->
+  <!-- Navigation index tabs for HTML output -->
+  <navindex>
+    <tab type="mainpage" visible="yes" title=""/>
+    <tab type="pages" visible="yes" title="" intro=""/>
+    <tab type="modules" visible="yes" title="" intro=""/>
+    <tab type="namespaces" visible="yes" title="">
+      <tab type="namespacelist" visible="yes" title="" intro=""/>
+      <tab type="namespacemembers" visible="yes" title="" intro=""/>
+    </tab>
+    <tab type="classes" visible="yes" title="">
+      <tab type="classlist" visible="yes" title="" intro=""/>
+      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> 
+      <tab type="hierarchy" visible="yes" title="" intro=""/>
+      <tab type="classmembers" visible="yes" title="" intro=""/>
+    </tab>
+    <tab type="files" visible="yes" title="">
+      <tab type="filelist" visible="yes" title="" intro=""/>
+      <tab type="globals" visible="yes" title="" intro=""/>
+    </tab>
+    <tab type="examples" visible="yes" title="" intro=""/>  
+    <tab type="user" url="@CORSIKA_WEBPAGE_URL@" title="@CORSIKA_WEBPAGE_TITLE@"/>
+  </navindex>
+
+  <!-- Layout definition for a class page -->
+  <class>
+    <briefdescription visible="yes"/>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <inheritancegraph visible="$CLASS_GRAPH"/>
+    <collaborationgraph visible="$COLLABORATION_GRAPH"/>
+    <memberdecl>
+      <nestedclasses visible="yes" title=""/>
+      <publictypes title=""/>
+      <services title=""/>
+      <interfaces title=""/>
+      <publicslots title=""/>
+      <signals title=""/>
+      <publicmethods title=""/>
+      <publicstaticmeth title=""/>
+      <publicattributes title=""/>
+      <publicstaticattributes title=""/>
+      <protectedtypes title=""/>
+      <protectedslots title=""/>
+      <protectedmethods title=""/>
+      <protectedstaticmethods title=""/>
+      <protectedattributes title=""/>
+      <protectedstaticattributes title=""/>
+      <packagetypes title=""/>
+      <packagemethods title=""/>
+      <packagestaticmethods title=""/>
+      <packageattributes title=""/>
+      <packagestaticattributes title=""/>
+      <properties title=""/>
+      <events title=""/>
+      <privatetypes title=""/>
+      <privateslots title=""/>
+      <privatemethods title=""/>
+      <privatestaticmethods title=""/>
+      <privateattributes title=""/>
+      <privatestaticattributes title=""/>
+      <friends title=""/>
+      <related title="" subtitle=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <services title=""/>
+      <interfaces title=""/>
+      <constructors title=""/>
+      <functions title=""/>
+      <related title=""/>
+      <variables title=""/>
+      <properties title=""/>
+      <events title=""/>
+    </memberdef>
+    <allmemberslink visible="yes"/>
+    <usedfiles visible="$SHOW_USED_FILES"/>
+    <authorsection visible="yes"/>
+  </class>
+
+  <!-- Layout definition for a namespace page -->
+  <namespace>
+    <briefdescription visible="yes"/>
+    <memberdecl>
+      <nestednamespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </namespace>
+
+  <!-- Layout definition for a file page -->
+  <file>
+    <briefdescription visible="yes"/>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <includegraph visible="$INCLUDE_GRAPH"/>
+    <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
+    <sourcelink visible="yes"/>
+    <memberdecl>
+      <classes visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection/>
+  </file>
+
+  <!-- Layout definition for a group page -->
+  <group>
+    <briefdescription visible="yes"/>
+    <groupgraph visible="$GROUP_GRAPHS"/>
+    <memberdecl>
+      <nestedgroups visible="yes" title=""/>
+      <dirs visible="yes" title=""/>
+      <files visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <pagedocs/>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </group>
+
+  <!-- Layout definition for a directory page -->
+  <directory>
+    <briefdescription visible="yes"/>
+    <directorygraph visible="yes"/>
+    <memberdecl>
+      <dirs visible="yes"/>
+      <files visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+  </directory>
+</doxygenlayout>
diff --git a/documentation/Doxyfile.in b/documentation/Doxyfile.in
index ded50d6a5ee5068ce65aa1a15338654f98f3ec72..f3768a1d22014397db7d836339de10dd020695ec 100644
--- a/documentation/Doxyfile.in
+++ b/documentation/Doxyfile.in
@@ -11,6 +11,7 @@ INPUT                  = @PROJECT_SOURCE_DIR@/corsika @PROJECT_SOURCE_DIR@/src @
 EXCLUDE_PATTERNS       = *.inl
 FULL_PATH_NAMES        = YES
 STRIP_FROM_PATH        = @PROJECT_SOURCE_DIR@
+LAYOUT_FILE            = DoxyLayout.xml
 
 FILE_PATTERNS          = *.cpp *.hpp *.dox *.md *.inc
 EXTENSION_MAPPING      = inc=C++
diff --git a/documentation/api.rst b/documentation/api.rst
index f8436257b4f5bfb33b642b0a7ac4bd452774634c..14630f3f015644a40ed9c562044572d0cad2d0f0 100644
--- a/documentation/api.rst
+++ b/documentation/api.rst
@@ -1,11 +1,20 @@
-Full API
-========
+Reference Documentation
+=======================
 
-Consider using Doxygen directly for a full API reference.... 
+Find the latest full reference manual at `Doxygen`_, or the components on:
+
+* `Classes`_ 
+* `Functions`_
+* `Files`_ 
+
+.. _Doxygen: doxygen/html/index.html
+.. _Classes: doxygen/html/classes.html
+.. _Functions: doxygen/html/functions.html
+.. _Files: doxygen/html/files.html
 
 ..
- .. doxygenindex::
-   :project: CORSIKA8
-   :path: c8
-   :outline:
-   :no-link:
+  .. doxygenindex::
+    :project: CORSIKA8
+    :path: c8
+    :outline:
+    :no-link:
\ No newline at end of file
diff --git a/documentation/conf.py b/documentation/conf.py
index ab28020201a0af1b306226ac3afad29d2a606b85..b0a15a6f281ce7008fea14840657803c94f7b6ae 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -1,40 +1,51 @@
 import sys
 import subprocess, os
 
-def configureDoxyfile(input_dir, output_dir):
-    with open('Doxyfile.in', 'r') as file :
+def configureDoxyfile(template_file, output_file, input_dir, output_dir):
+    with open(template_file, 'r') as file :
         filedata = file.read()
 
     filedata = filedata.replace('@PROJECT_SOURCE_DIR@', input_dir)
     filedata = filedata.replace('@CMAKE_CURRENT_BINARY_DIR@', output_dir)
     filedata = filedata.replace('@CMAKE_BINARY_DIR@', output_dir)
 
-    with open('Doxyfile', 'w') as file:
+    with open(output_file, 'w') as file:
+        file.write(filedata)
+
+def configureDoxyLayout(template_file, output_file, page_url, page_tile):
+    with open(template_file, 'r') as file :
+        filedata = file.read()
+
+    filedata = filedata.replace('@CORSIKA_WEBPAGE_URL@', page_url)
+    filedata = filedata.replace('@CORSIKA_WEBPAGE_TITLE@', page_tile)
+
+    with open(output_file, 'w') as file:
         file.write(filedata)
 
-read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True'
 
+
+
+read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True'
+build_version = os.environ.get('READTHEDOCS_VERSION', None)
 breathe_projects = {}
 
-if read_the_docs_build:
-    
-    input_dir = '../'
-    output_dir = 'build'
-    configureDoxyfile(input_dir, output_dir)
+doc_url = 'https://corsika-8.readthedocs.io/en/'+build_version
 
-    subprocess.call('mkdir -p build/corsika/framework/core; cd build/corsika/framework/core && ../../../../../src/framework/core/pdxml_reader.py ../../../../../src/framework/core/ParticleData.xml ../../../../../src/framework/core/NuclearData.xml ../../../../../src/framework/core/ParticleClassNames.xml', shell=True)
+if read_the_docs_build:
+    configureDoxyfile("Doxyfile.in", "Doxyfile", "../", "_build/workdir/doxygen")
+    configureDoxyLayout("DoxyLayout.in", "DoxyLayout.xml", doc_url , "CORSIKA 8 Webpage")
+    subprocess.call('mkdir -p _build/workdir/doxygen; doxygen Doxyfile', shell=True)
+    html_extra_path = ['_build/workdir/']
+    breathe_projects['CORSIKA8'] = '_build/workdir/doxygen/xml'
 
-    subprocess.call('mkdir -p build/corsika/media; cd build/corsika/media && ../../../../src/media/readProperties.py ../../../../src/media/properties8.dat', shell=True)
     
-    subprocess.call('doxygen', shell=True)
-    breathe_projects['CORSIKA8'] = output_dir + '/xml'
     
 
 # -- Project information -----------------------------------------------------
 
-project = u'CORSIKA8'
+project   = u'CORSIKA8'
 copyright = u'2021, CORSIKA 8 Collaboration'
-author = u'CORSIKA 8 Collaboration'
+author    = u'CORSIKA 8 Collaboration'
 
 # The short X.Y version
 version = u'0.0.0'
@@ -54,10 +65,14 @@ extensions = [
 
 breathe_default_project = "CORSIKA8"
 
-
 # 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 = ['_build', 'Thumbs.db', '.DS_Store']
+
 # The suffix(es) of source filenames.
 # You can specify multiple suffix as a list of string:
 #
@@ -74,11 +89,6 @@ master_doc = 'index'
 # Usually you set "language" from the command line for these cases.
 language = None
 
-# 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 = []
-
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
 
@@ -86,10 +96,26 @@ pygments_style = 'sphinx'
 # -- Options for HTML output -------------------------------------------------
 
 html_theme = 'sphinx_rtd_theme'
-# html_theme_options = {}
 
-# html_static_path = []
-# html_sidebars = {}
+html_theme_options = {
+    'analytics_id': '',  #  Provided by Google in your dashboard
+    'analytics_anonymize_ip': False,
+    'logo_only': False,
+    'display_version': True,
+    'prev_next_buttons_location': 'bottom',
+    'style_external_links': False,
+    # Toc options
+    'collapse_navigation': True,
+    'sticky_navigation': True,
+    'navigation_depth': 4,
+    'includehidden': True,
+    'titles_only': False
+}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
 
 htmlhelp_basename = 'C8doc'
 
diff --git a/documentation/rtfd-requirements.txt b/documentation/rtfd-requirements.txt
index 3087817421ed52d662b781f58b78ca9e2ae4a38a..e9cd6124c6c7ee0a6f9fe033beefb7c37d6b0b6c 100644
--- a/documentation/rtfd-requirements.txt
+++ b/documentation/rtfd-requirements.txt
@@ -1,4 +1,4 @@
-sphinx_rtd_theme == 0.5.1
-sphinx == 3.5.3
-breathe == 4.27.0
-recommonmark == 0.7.1
+sphinx_rtd_theme >= 0.5.1
+sphinx >= 3.5.3
+recommonmark >= 0.7.1
+breathe >= 4.27.0
\ No newline at end of file