diff --git a/modules/effects/include/vkcv/effects/BloomAndFlaresEffect.hpp b/modules/effects/include/vkcv/effects/BloomAndFlaresEffect.hpp
index f4a9d03d8afcaf3532570a0807b246a0d641e02d..71b8d1e4d9e13189a37bc06b6cd7e7ab4a58db8d 100644
--- a/modules/effects/include/vkcv/effects/BloomAndFlaresEffect.hpp
+++ b/modules/effects/include/vkcv/effects/BloomAndFlaresEffect.hpp
@@ -7,6 +7,11 @@
 
 namespace vkcv::effects {
 	
+	/**
+     * @addtogroup vkcv_effects
+     * @{
+     */
+	
 	class BloomAndFlaresEffect : public Effect {
 	private:
 		bool m_advanced;
@@ -57,8 +62,8 @@ namespace vkcv::effects {
 							   const ImageHandle &output);
 		
 	public:
-		BloomAndFlaresEffect(Core& core,
-							 bool advanced = false);
+		explicit BloomAndFlaresEffect(Core& core,
+									  bool advanced = false);
 		
 		void recordEffect(const CommandStreamHandle &cmdStream,
 						  const ImageHandle &input,
@@ -70,4 +75,6 @@ namespace vkcv::effects {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/effects/include/vkcv/effects/Effect.hpp b/modules/effects/include/vkcv/effects/Effect.hpp
index d068fb59404080aa421e49f6a183844e731c1c5e..f81d3d7b9e4190834f6fa40632b631131341121c 100644
--- a/modules/effects/include/vkcv/effects/Effect.hpp
+++ b/modules/effects/include/vkcv/effects/Effect.hpp
@@ -5,6 +5,12 @@
 
 namespace vkcv::effects {
 	
+	/**
+     * @defgroup vkcv_effects Effects Module
+     * A module to apply certain post-processing effects to an image in realtime.
+     * @{
+     */
+	
 	class Effect {
 	protected:
 		Core& m_core;
@@ -20,4 +26,6 @@ namespace vkcv::effects {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/effects/include/vkcv/effects/GammaCorrectionEffect.hpp b/modules/effects/include/vkcv/effects/GammaCorrectionEffect.hpp
index 93a90b8284e4af69ed0148552c972c3ef66201cf..1c41bdd3cd43b3c696ea6daf74df8e4aa5278fa5 100644
--- a/modules/effects/include/vkcv/effects/GammaCorrectionEffect.hpp
+++ b/modules/effects/include/vkcv/effects/GammaCorrectionEffect.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::effects {
 	
+	/**
+     * @addtogroup vkcv_effects
+     * @{
+     */
+	
 	class GammaCorrectionEffect : public Effect {
 	private:
 		float m_gamma;
@@ -15,7 +20,7 @@ namespace vkcv::effects {
 		DescriptorSetHandle m_descriptorSet;
 	
 	public:
-		GammaCorrectionEffect(Core& core);
+		explicit GammaCorrectionEffect(Core& core);
 		
 		void recordEffect(const CommandStreamHandle& cmdStream,
 						  const ImageHandle& input,
@@ -23,8 +28,11 @@ namespace vkcv::effects {
 		
 		void setGamma(float gamma);
 		
+		[[nodiscard]]
 		float getGamma() const;
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/ACESToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/ACESToneMapping.hpp
index 247d1d06af45bd2a23724ab9e453aeb4f8f59cd8..de1c02c5d9efa070aadeff5003c7e15e232af7ee 100644
--- a/modules/tone_mapping/include/vkcv/tone/ACESToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/ACESToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class ACESToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/FilmicToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/FilmicToneMapping.hpp
index 6ed77ad87b10e923a1830913dfcda9c8f6753235..c25e1b74f7d1f78f74e84399bccc0beb063c7c12 100644
--- a/modules/tone_mapping/include/vkcv/tone/FilmicToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/FilmicToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class FilmicToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/LottesToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/LottesToneMapping.hpp
index 444b5fb30d1cb97c23dcec77739c0c49ca1d3ffc..37dad90397bdf8f3ae1e359a5961b65d085d651b 100644
--- a/modules/tone_mapping/include/vkcv/tone/LottesToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/LottesToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class LottesToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/Reinhard2ToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/Reinhard2ToneMapping.hpp
index 2e6780837db03dc020873e492667162409ea786e..9bcf9f9e28a734b7de481e9dd90ffae3e98254bd 100644
--- a/modules/tone_mapping/include/vkcv/tone/Reinhard2ToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/Reinhard2ToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class Reinhard2ToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/ReinhardToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/ReinhardToneMapping.hpp
index 1b74dcce00652bfd9e8d4ab9eb4a148d3236c4e9..ac7fb5c9e3856de5aeb5f743793a0668c55b2bf1 100644
--- a/modules/tone_mapping/include/vkcv/tone/ReinhardToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/ReinhardToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class ReinhardToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/ToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/ToneMapping.hpp
index 467ca74f0916a6ead2f45246e01c68ba3662e5f3..00e8c287c8bb2bca503361e2e249d0a19b4edbf4 100644
--- a/modules/tone_mapping/include/vkcv/tone/ToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/ToneMapping.hpp
@@ -4,6 +4,12 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @defgroup vkcv_tone Tone Mapping Module
+     * A module to apply tone mapping to an image in realtime.
+     * @{
+     */
+	
 	class ToneMapping {
 	private:
 		/**
@@ -11,9 +17,19 @@ namespace vkcv::tone {
          */
 		Core& m_core;
 		
+		/**
+		 * The name of the tone mapping instance.
+		 */
 		std::string m_name;
+		
+		/**
+		 * Flag whether tone mapping should normalize before mapping.
+		 */
 		bool m_normalize;
 		
+		/**
+		 * The compute pipeline of the tone mapping instance.
+		 */
 		ComputePipelineHandle m_pipeline;
 		
 		/**
@@ -41,7 +57,7 @@ namespace vkcv::tone {
          *
          * @param[in,out] core Reference to a Core instance
          * @param[in] name Name of the tone mapping function
-         * @param[in] normalize Normalize color values
+         * @param[in] normalize (Optional) Flag to normalize color values
          */
 		explicit ToneMapping(Core& core,
 							 const std::string& name,
@@ -49,6 +65,11 @@ namespace vkcv::tone {
 	
 		~ToneMapping() = default;
 		
+		/**
+		 * Return name of the tone mapping instance.
+		 *
+		 * @return Name of the tone mapping
+		 */
 		[[nodiscard]]
 		const std::string& getName() const;
 		
@@ -67,4 +88,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/UchimuraToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/UchimuraToneMapping.hpp
index ad2e4f119241c31c22fbf519514c7fc366d02bd0..83afa0c2cfa2038c64bf78a74b8886fd5aa2d54e 100644
--- a/modules/tone_mapping/include/vkcv/tone/UchimuraToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/UchimuraToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class UchimuraToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/Uncharted2ToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/Uncharted2ToneMapping.hpp
index 99a4d6c726a37a36b4f7e86d26c9df0890a878b8..fc1db5b4b5e66ff584df9679cc9b8a0ddad89ec4 100644
--- a/modules/tone_mapping/include/vkcv/tone/Uncharted2ToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/Uncharted2ToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class Uncharted2ToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }
diff --git a/modules/tone_mapping/include/vkcv/tone/UnrealToneMapping.hpp b/modules/tone_mapping/include/vkcv/tone/UnrealToneMapping.hpp
index a5e1f71741277eb158f4609916cc535fcc52b64f..10fb9cc6b52feb543fe1b8fb61f5b0b91e6e5acc 100644
--- a/modules/tone_mapping/include/vkcv/tone/UnrealToneMapping.hpp
+++ b/modules/tone_mapping/include/vkcv/tone/UnrealToneMapping.hpp
@@ -4,6 +4,11 @@
 
 namespace vkcv::tone {
 	
+	/**
+     * @addtogroup vkcv_tone
+     * @{
+     */
+	
 	class UnrealToneMapping : public ToneMapping {
 	private:
 		void initToneMapping() override;
@@ -13,4 +18,6 @@ namespace vkcv::tone {
 		
 	};
 	
+	/** @} */
+	
 }