diff --git a/README.md b/README.md
index 4a3350616ef3e69dd7ab41dd99b91cc7f0f3727e..15fe2baf506de8173963919e7821a794b1efde05 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
 
 ### Docs
 
- **[Tutorial](doc/Tutorial.md)**   [Guide](doc/Guide.md)   [Tests](doc/Tests.md)   [Third-Party](doc/Third-Party.md)   [Install](doc/Install.md)
+ **[Tutorial](doc/Tutorial.md)**   [Guide](doc/Guide.md)   [Reference](doc/Reference.md)   [Tests](doc/Tests.md)   [Third-Party](doc/Third-Party.md)   [Install](doc/Install.md)
 
 <br />
 
diff --git a/doc/Demo.md b/doc/Demo.md
index b83550c26e7441d37aa461cb642899191392d724..324ca9643eb8bed55b6edc259ed790e68661fd93 100644
--- a/doc/Demo.md
+++ b/doc/Demo.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; **[Demo](Demo.md)** &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; **[Demo](Demo.md)** &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/Doxygen.md b/doc/Doxygen.md
new file mode 100644
index 0000000000000000000000000000000000000000..ced467a661318be814c35d1649316714e36bda05
--- /dev/null
+++ b/doc/Doxygen.md
@@ -0,0 +1,34 @@
+Project is hosted on [GitHub](https://git.io/liblava)
+
+This is the official documentation and is constantly evolving...
+
+If you need any help, please feel free to ask us on ➜ [Discord](https://discord.lava-block.com)
+
+---
+
+## Docs
+
+* [Features](https://github.com/liblava/liblava/blob/master/doc/Features.md)
+* [Tutorial](https://github.com/liblava/liblava/blob/master/doc/Tutorial.md)
+* [Guide](https://github.com/liblava/liblava/blob/master/doc/Guide.md)
+* [Modules](https://github.com/liblava/liblava/blob/master/doc/Modules.md)
+* [Third-Party](https://github.com/liblava/liblava/blob/master/doc/Third-Party.md)
+* [Demo](https://github.com/liblava/liblava/blob/master/doc/Demo.md)
+* [Tests](https://github.com/liblava/liblava/blob/master/doc/Tests.md)
+* [Install](https://github.com/liblava/liblava/blob/master/doc/Install.md)
+
+## Readme
+
+* [Demos](https://github.com/liblava/liblava#demos)
+* [Projects](https://github.com/liblava/liblava#projects)
+* [Requirements](https://github.com/liblava/liblava#requirements)
+* [Build](https://github.com/liblava/liblava#build)
+* [Template](https://github.com/liblava/liblava#template)
+* [Collaborate](https://github.com/liblava/liblava#collaborate)
+* [License](https://github.com/liblava/liblava#license)
+
+---
+
+Vulkan and the Vulkan logo are trademarks of the <a href="http://www.khronos.org" target="_blank">Khronos Group Inc.</a>
+
+Copyright (c) 2018-present, <a href="https://lava-block.com">Lava Block OÜ</a> and [contributors](https://github.com/liblava/liblava/graphs/contributors)
diff --git a/doc/Features.md b/doc/Features.md
index fc4e0ce2168efb56993d0a2dddf0f91643bd8b5c..3da70ed32a82b09bc9ab93b21609fe970f70e144 100644
--- a/doc/Features.md
+++ b/doc/Features.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; **[Features](Features.md)** &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; **[Features](Features.md)** &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/Guide.md b/doc/Guide.md
index 21c822dca8f60d7d6fb3597790b27e9061a052de..9821b18dc94914e2e2ec66ec29506c57e22aa26e 100644
--- a/doc/Guide.md
+++ b/doc/Guide.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; **[Guide](Guide.md)** &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; **[Guide](Guide.md)** &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/Install.md b/doc/Install.md
index 7945b1a7d2824077b2e2d25f1eee85361c7be908..10b7b01cddd0efbfde34d2d39348142626409d44 100644
--- a/doc/Install.md
+++ b/doc/Install.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; **[Install](Install.md)**
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; **[Install](Install.md)**
 
 <br />
 
diff --git a/doc/Modules.md b/doc/Modules.md
index c94f5e94bd832570e40b0e90bfe601bdf8962dd1..1d40e5a12479c768143b26a2cd994629f4879d96 100644
--- a/doc/Modules.md
+++ b/doc/Modules.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; **[Modules](Modules.md)** &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; **[Modules](Modules.md)** &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/README.md b/doc/README.md
index b7d7a20a31f95a2d0ddb15f0b853741dab3930db..a08a33bb6fbabe58922ca5e966d6dc3b5f610343 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -2,6 +2,8 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-**[Home](README.md)** &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+**[Home](README.md)** &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
+
+This is the official documentation and is constantly evolving... if you need any help, please feel free to ask us on ➜ [Discord](https://discord.lava-block.com)
\ No newline at end of file
diff --git a/doc/Reference.md b/doc/Reference.md
new file mode 100644
index 0000000000000000000000000000000000000000..c7e823c1d76bc03efd94b75896d8a135b70e4a17
--- /dev/null
+++ b/doc/Reference.md
@@ -0,0 +1,17 @@
+<a href="https://git.io/liblava"><img align="left" src="https://github.com/liblava.png" width="100" style="margin:0px 20px 0px 0px"></a>
+
+# liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
+
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; **[Reference](Reference.md)** &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+
+<br />
+
+# Reference
+
+Run [doc/build.bat](build.bat) or [doc/build.sh](build.sh) to generate the documentation with [Doxygen](https://www.doxygen.nl)
+
+## You can find the latest here ➜ [liblava.lava-block.com](https://liblava.lava-block.com)
+
+<br />
+
+<a href="https://git.io/liblava"><img src="https://github.com/liblava.png" width="50"></a>
diff --git a/doc/Tests.md b/doc/Tests.md
index 5049cbfda1ba44029d17c32a092d19d59ff32749..98ede286fd2b1bf0ba5c5a2889f1b604edde20ff 100644
--- a/doc/Tests.md
+++ b/doc/Tests.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; **[Tests](Tests.md)** &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; **[Tests](Tests.md)** &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/Third-Party.md b/doc/Third-Party.md
index 1edb76b0cd99f78e05a9bb7d7d0cf2980d9c513e..eeaef1c5d5bc1b74b7535d7ed0c21b755758dbab 100644
--- a/doc/Third-Party.md
+++ b/doc/Third-Party.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; **[Third-Party](Third-Party.md)** &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; [Tutorial](Tutorial.md) &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; **[Third-Party](Third-Party.md)** &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/Tutorial.md b/doc/Tutorial.md
index 893a203f1c36dc58004bb1b00d97d891a3ac2843..22a860a9c94bfbce2a54fc3e02ae46bfec6c2752 100644
--- a/doc/Tutorial.md
+++ b/doc/Tutorial.md
@@ -2,7 +2,7 @@
 
 # liblava docs &nbsp; [![Version](https://img.shields.io/badge/Version-0.6.2-blue)](https://git.io/liblava)
 
-[Home](README.md) &nbsp; [Features](Features.md) &nbsp; **[Tutorial](Tutorial.md)** &nbsp; [Guide](Guide.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
+[Home](README.md) &nbsp; [Features](Features.md) &nbsp; **[Tutorial](Tutorial.md)** &nbsp; [Guide](Guide.md) &nbsp; [Reference](Reference.md) &nbsp; [Modules](Modules.md) &nbsp; [Third-Party](Third-Party.md) &nbsp; [Demo](Demo.md) &nbsp; [Tests](Tests.md) &nbsp; [Install](Install.md)
 
 <br />
 
diff --git a/doc/build.bat b/doc/build.bat
new file mode 100644
index 0000000000000000000000000000000000000000..1ebf1b541e894b8bb45a70672954d16cd3b1ae54
--- /dev/null
+++ b/doc/build.bat
@@ -0,0 +1,2 @@
+@ECHO OFF
+doxygen.exe "doxygen.conf"
\ No newline at end of file
diff --git a/doc/build.sh b/doc/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..310e4fd69c9d60e37f09a7f5a89661fd7f423251
--- /dev/null
+++ b/doc/build.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+doxygen "doxygen.conf"
\ No newline at end of file
diff --git a/doc/doxygen.conf b/doc/doxygen.conf
index 636c34176a39e40a731203baa448b5b6c4fa09be..ba1f6e0db7dd2b8fba3552be0c380aa87fedd85a 100644
--- a/doc/doxygen.conf
+++ b/doc/doxygen.conf
@@ -170,7 +170,7 @@ FULL_PATH_NAMES        = YES
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        =
+STRIP_FROM_PATH        = ../
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which
@@ -864,7 +864,7 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = ../liblava ../liblava-demo ../src
+INPUT                  = ../liblava Doxygen.md
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -893,51 +893,7 @@ INPUT_ENCODING         = UTF-8
 # *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
 # *.ucf, *.qsf and *.ice.
 
-FILE_PATTERNS          = *.c \
-                         *.cc \
-                         *.cxx \
-                         *.cpp \
-                         *.c++ \
-                         *.java \
-                         *.ii \
-                         *.ixx \
-                         *.ipp \
-                         *.i++ \
-                         *.inl \
-                         *.idl \
-                         *.ddl \
-                         *.odl \
-                         *.h \
-                         *.hh \
-                         *.hxx \
-                         *.hpp \
-                         *.h++ \
-                         *.cs \
-                         *.d \
-                         *.php \
-                         *.php4 \
-                         *.php5 \
-                         *.phtml \
-                         *.inc \
-                         *.m \
-                         *.markdown \
-                         *.md \
-                         *.mm \
-                         *.dox \
-                         *.py \
-                         *.pyw \
-                         *.f90 \
-                         *.f95 \
-                         *.f03 \
-                         *.f08 \
-                         *.f18 \
-                         *.f \
-                         *.for \
-                         *.vhd \
-                         *.vhdl \
-                         *.ucf \
-                         *.qsf \
-                         *.ice
+FILE_PATTERNS          = *.cpp *.h *.hpp
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.
@@ -1061,7 +1017,7 @@ FILTER_SOURCE_PATTERNS =
 # (index.html). This can be useful if you have a project on for instance GitHub
 # and want to reuse the introduction page also for the doxygen output.
 
-USE_MDFILE_AS_MAINPAGE =
+USE_MDFILE_AS_MAINPAGE = Doxygen.md
 
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
@@ -1790,7 +1746,7 @@ EXTRA_SEARCH_MAPPINGS  =
 # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
 # The default value is: YES.
 
-GENERATE_LATEX         = YES
+GENERATE_LATEX         = NO
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of