diff --git a/Doxyfile b/Doxyfile
index 728050856484c09c072b16c96116fabe2125917f..05d73d3cd7cf3ed9322481cfbee1597a488305b6 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -2159,6 +2159,10 @@ DOCBOOK_OUTPUT         = docbook
 
 GENERATE_AUTOGEN_DEF   = NO
 
+#---------------------------------------------------------------------------
+# Configuration options related to Sqlite3 output
+#---------------------------------------------------------------------------
+
 #---------------------------------------------------------------------------
 # Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
@@ -2345,7 +2349,7 @@ HIDE_UNDOC_RELATIONS   = YES
 # set to NO
 # The default value is: NO.
 
-HAVE_DOT               = YES
+HAVE_DOT               = NO
 
 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
 # to run in parallel. When set to 0 doxygen will base this on the number of
@@ -2487,7 +2491,7 @@ INCLUDED_BY_GRAPH      = YES
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-CALL_GRAPH             = YES
+CALL_GRAPH             = NO
 
 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
 # dependency graph for every global function or class method.
@@ -2499,7 +2503,7 @@ CALL_GRAPH             = YES
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-CALLER_GRAPH           = YES
+CALLER_GRAPH           = NO
 
 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
 # hierarchy of all classes instead of a textual one.
diff --git a/include/vkcv/DescriptorConfig.hpp b/include/vkcv/DescriptorConfig.hpp
index 038489d1518eae53458ff6305433d0164667e52b..1d116e69f0887128d32bfb07824464f6e2da89bb 100644
--- a/include/vkcv/DescriptorConfig.hpp
+++ b/include/vkcv/DescriptorConfig.hpp
@@ -14,6 +14,9 @@
 namespace vkcv
 {
 
+	/**
+	 * @brief Enum class to specify the type of a descriptor set binding.
+	 */
     enum class DescriptorType {
         UNIFORM_BUFFER,
         STORAGE_BUFFER,
diff --git a/include/vkcv/DescriptorWrites.hpp b/include/vkcv/DescriptorWrites.hpp
index 4bdbee4a3ae559e5f4b7f57a1daf6276e6c59e3c..b8468bfdfd4cd20e59742f410ff8716be4e910fa 100644
--- a/include/vkcv/DescriptorWrites.hpp
+++ b/include/vkcv/DescriptorWrites.hpp
@@ -11,6 +11,9 @@
 
 namespace vkcv {
 	
+	/**
+	 * @brief Structure to store details writing a sampled image to a descriptor set.
+	 */
 	struct SampledImageDescriptorWrite {
 		uint32_t binding;
 		ImageHandle image;
@@ -18,13 +21,19 @@ namespace vkcv {
 		bool useGeneralLayout;
 		uint32_t arrayIndex;
 	};
-
+	
+	/**
+	 * @brief Structure to store details writing a storage image to a descriptor set.
+	 */
 	struct StorageImageDescriptorWrite {
 		uint32_t binding;
 		ImageHandle image;
 		uint32_t mipLevel;
 	};
-
+	
+	/**
+	 * @brief Structure to store details writing a buffer to a descriptor set.
+	 */
 	struct BufferDescriptorWrite {
 		uint32_t binding;
 		BufferHandle buffer;
@@ -32,12 +41,19 @@ namespace vkcv {
 		uint32_t offset;
 		uint32_t size;
 	};
-
+	
+	/**
+	 * @brief Structure to store details writing a sampler to a descriptor set.
+	 */
 	struct SamplerDescriptorWrite {
 		uint32_t binding;
 		SamplerHandle sampler;
 	};
 	
+	/**
+	 * @brief Structure to store details writing an acceleration structure to
+	 * a descriptor set.
+	 */
 	struct AccelerationDescriptorWrite {
 	    uint32_t binding;
 	};
diff --git a/include/vkcv/DrawcallRecording.hpp b/include/vkcv/DrawcallRecording.hpp
index 244508b4c4c2677f608573275b32a25fef435951..8cdaaa9b9a4779d10554a393195c68f142cb894e 100644
--- a/include/vkcv/DrawcallRecording.hpp
+++ b/include/vkcv/DrawcallRecording.hpp
@@ -23,7 +23,11 @@ namespace vkcv {
         vk::Buffer      buffer;
     };
 
-    enum class IndexBitCount{
+	/**
+	 * @brief Enum class to specify the size of indexes.
+	 */
+    enum class IndexBitCount {
+		Bit8,
         Bit16,
         Bit32
     };
diff --git a/include/vkcv/Handles.hpp b/include/vkcv/Handles.hpp
index bfe2ac26f5def4c4a0bf8a52ca2c8052382889f1..dea1793871a320016cf7c0da3f3877fc66a6f616 100644
--- a/include/vkcv/Handles.hpp
+++ b/include/vkcv/Handles.hpp
@@ -12,10 +12,13 @@
 namespace vkcv
 {
 	
+	/**
+	 * @brief Function to be called when a handles resources can be destroyed.
+	 */
 	typedef typename event_function<uint64_t>::type HandleDestroyFunction;
 
     /**
-     * Class for general memory management via handles.
+     * @brief Class for general memory management via handles.
      */
 	class Handle {
 		friend std::ostream& operator << (std::ostream& out, const Handle& handle);
diff --git a/include/vkcv/ShaderStage.hpp b/include/vkcv/ShaderStage.hpp
index b964c63fa93e4c9483affa091a2b2aadcd16f903..39b250e80be79cbb0f39261e69ab0d80a71d4f31 100644
--- a/include/vkcv/ShaderStage.hpp
+++ b/include/vkcv/ShaderStage.hpp
@@ -9,6 +9,9 @@
 
 namespace vkcv {
 	
+	/**
+	 * @brief Enum class to specify the stage of a shader.
+	 */
 	enum class ShaderStage : VkShaderStageFlags {
 		VERTEX = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eVertex),
 		TESS_CONTROL = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTessellationControl),
diff --git a/include/vkcv/SyncResources.hpp b/include/vkcv/SyncResources.hpp
index 9a2de30f92da73c02ec59e56d6afd4e8f29c90cd..1683855b6b4f9046b0af5fb2df65f3bca895da2a 100644
--- a/include/vkcv/SyncResources.hpp
+++ b/include/vkcv/SyncResources.hpp
@@ -9,10 +9,14 @@
 
 namespace vkcv {
 	
+	/**
+	 * @brief Structure to store vulkan resources for presenting
+	 * with a pipeline.
+	 */
 	struct SyncResources {
-		vk::Semaphore	renderFinished;
-		vk::Semaphore	swapchainImageAcquired;
-		vk::Fence		presentFinished;
+		vk::Semaphore renderFinished;
+		vk::Semaphore swapchainImageAcquired;
+		vk::Fence presentFinished;
 	};
 
 	/**
diff --git a/include/vkcv/VertexLayout.hpp b/include/vkcv/VertexLayout.hpp
index 588e898e89925afe52f60fda705cddff8ce5a6bd..b375aaf6cb8dd98d8b6dad738af47210a7038410 100644
--- a/include/vkcv/VertexLayout.hpp
+++ b/include/vkcv/VertexLayout.hpp
@@ -12,6 +12,9 @@
 
 namespace vkcv {
 	
+	/**
+	 * @brief Enum class to specify the format of vertex attributes.
+	 */
     enum class VertexAttachmentFormat{
         FLOAT,
         FLOAT2,
@@ -23,6 +26,13 @@ namespace vkcv {
         INT4
     };
 
+	/**
+	 * @brief Returns the size in bytes of a vertex with a
+	 * given vertex format.
+	 *
+	 * @param[in] format Vertex format
+	 * @return Size in bytes
+	 */
 	uint32_t getFormatSize(VertexAttachmentFormat format);
 
     struct VertexAttachment{
diff --git a/src/vkcv/Core.cpp b/src/vkcv/Core.cpp
index 42e96b515c8844fed9c2e0d5ca0d326ca64bdf9c..417157ab37bcded7deca5c092fd96a828a4de7e6 100644
--- a/src/vkcv/Core.cpp
+++ b/src/vkcv/Core.cpp
@@ -271,11 +271,15 @@ namespace vkcv
 	
 	vk::IndexType getIndexType(IndexBitCount indexByteCount){
 		switch (indexByteCount) {
-			case IndexBitCount::Bit16: return vk::IndexType::eUint16;
-			case IndexBitCount::Bit32: return vk::IndexType::eUint32;
-			default:
-			vkcv_log(LogLevel::ERROR, "unknown Enum");
+			case IndexBitCount::Bit8:
+				return vk::IndexType::eUint8EXT;
+			case IndexBitCount::Bit16:
 				return vk::IndexType::eUint16;
+			case IndexBitCount::Bit32:
+				return vk::IndexType::eUint32;
+			default:
+				vkcv_log(LogLevel::ERROR, "unknown Enum");
+				return vk::IndexType::eNoneKHR;
 		}
 	}
 	
diff --git a/src/vkcv/VertexLayout.cpp b/src/vkcv/VertexLayout.cpp
index 0edced571502bbaf0e89ff6d45d338ca38b229ca..5298dd4117cd61c7b3ce7e6f4aa0ed0ad2855f68 100644
--- a/src/vkcv/VertexLayout.cpp
+++ b/src/vkcv/VertexLayout.cpp
@@ -6,6 +6,7 @@
 #include "vkcv/Logger.hpp"
 
 namespace vkcv {
+	
     uint32_t getFormatSize(VertexAttachmentFormat format) {
         switch (format) {
             case VertexAttachmentFormat::FLOAT: