diff --git a/include/vkcv/DescriptorConfig.hpp b/include/vkcv/DescriptorConfig.hpp
index 12d57ea3e871b6ccdda0db6e436d3d7b61dd6d96..905ff6791e2cef5fdb972e900c16b7bf7999ed37 100644
--- a/include/vkcv/DescriptorConfig.hpp
+++ b/include/vkcv/DescriptorConfig.hpp
@@ -58,14 +58,6 @@ namespace vkcv
     */
     struct DescriptorBinding
     {
-        DescriptorBinding(
-            uint32_t bindingID,
-            DescriptorType descriptorType,
-            uint32_t descriptorCount,
-            ShaderStage shaderStages,
-            bool variableCount = false
-        ) noexcept;
-
         uint32_t        bindingID;
         DescriptorType  descriptorType;
         uint32_t        descriptorCount;
diff --git a/projects/bindless_textures/src/main.cpp b/projects/bindless_textures/src/main.cpp
index b340cba82a1a53c9973cfc8c96d01189f4ffe819..789557bf8cac450d0f000ad9a1ce4ef941e02ab1 100644
--- a/projects/bindless_textures/src/main.cpp
+++ b/projects/bindless_textures/src/main.cpp
@@ -154,8 +154,12 @@ int main(int argc, const char** argv) {
 	
 	const vkcv::VertexLayout firstMeshLayout (bindings);
 
-	std::unordered_map<uint32_t, vkcv::DescriptorBinding> descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0);
-	vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(descriptorBindings);
+	const std::unordered_map<uint32_t, vkcv::DescriptorBinding> &descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0);
+
+    std::unordered_map<uint32_t, vkcv::DescriptorBinding> adjustedBindings = descriptorBindings;
+    adjustedBindings[1].descriptorCount = 5;
+
+    vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(adjustedBindings);
 	vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout);
 
 	const vkcv::PipelineConfig firstMeshPipelineConfig {
diff --git a/src/vkcv/DescriptorConfig.cpp b/src/vkcv/DescriptorConfig.cpp
index 78a08ed1f6b5ca04c6c9b4896a359f98264cc9cf..15bb05fd9cb3e5430b2a9909a682c468dfcde342 100644
--- a/src/vkcv/DescriptorConfig.cpp
+++ b/src/vkcv/DescriptorConfig.cpp
@@ -2,18 +2,6 @@
 
 namespace vkcv
 {
-	DescriptorBinding::DescriptorBinding(
-		uint32_t bindingID,
-		DescriptorType descriptorType,
-		uint32_t descriptorCount,
-		ShaderStage shaderStages,
-		bool variableCount) noexcept:
-		bindingID(bindingID),
-		descriptorType(descriptorType),
-		descriptorCount(descriptorCount),
-		shaderStages(shaderStages),
-		variableCount(variableCount){}
-
     bool DescriptorBinding::operator==(const DescriptorBinding &other) const
     {
 	    return (this->bindingID == other.bindingID) &&
diff --git a/src/vkcv/ShaderProgram.cpp b/src/vkcv/ShaderProgram.cpp
index 3c019a2b0381f679adf25b73959a2347f3d7a6d3..f99bd3c609005957469c1f2856b489f7f3e2fd47 100644
--- a/src/vkcv/ShaderProgram.cpp
+++ b/src/vkcv/ShaderProgram.cpp
@@ -161,12 +161,11 @@ namespace vkcv {
                     variableCount = true;
             }
 
-            auto binding = DescriptorBinding(
-                    bindingID,
-                    DescriptorType::UNIFORM_BUFFER,
-                    descriptorCount,
-                    shaderStage,
-                    variableCount);
+            DescriptorBinding binding{bindingID,
+                                      DescriptorType::UNIFORM_BUFFER,
+                                      descriptorCount,
+                                      shaderStage,
+                                      variableCount};
 
             auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
             if(!insertionResult.second)
@@ -197,12 +196,12 @@ namespace vkcv {
                     variableCount = true;
             }
 
-            auto binding = DescriptorBinding(
-                    bindingID,
-                    DescriptorType::STORAGE_BUFFER,
-                    descriptorCount,
-                    shaderStage,
-                    variableCount);
+            DescriptorBinding binding{bindingID,
+                                      DescriptorType::STORAGE_BUFFER,
+                                      descriptorCount,
+                                      shaderStage,
+                                      variableCount};
+
 
             auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
             if(!insertionResult.second)
@@ -232,12 +231,11 @@ namespace vkcv {
                     variableCount = true;
             }
 
-            auto binding = DescriptorBinding(
-                    bindingID,
-                    DescriptorType::SAMPLER,
-                    descriptorCount,
-                    shaderStage,
-                    variableCount);
+            DescriptorBinding binding {bindingID,
+                                       DescriptorType::SAMPLER,
+                                       descriptorCount,
+                                       shaderStage,
+                                       variableCount};
 
             auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
             if(!insertionResult.second)
@@ -267,12 +265,11 @@ namespace vkcv {
                     variableCount = true;
             }
 
-            auto binding = DescriptorBinding(
-                    bindingID,
-                    DescriptorType::IMAGE_SAMPLED,
-                    descriptorCount,
-                    shaderStage,
-                    variableCount);
+            DescriptorBinding binding {bindingID,
+                                       DescriptorType::IMAGE_SAMPLED,
+                                       descriptorCount,
+                                       shaderStage,
+                                       variableCount};
 
             auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
             if(!insertionResult.second)
@@ -302,12 +299,11 @@ namespace vkcv {
                     variableCount = true;
             }
 
-            auto binding = DescriptorBinding(
-                    bindingID,
-                    DescriptorType::IMAGE_STORAGE,
-                    descriptorCount,
-                    shaderStage,
-                    variableCount);
+            DescriptorBinding binding {bindingID,
+                                       DescriptorType::IMAGE_STORAGE,
+                                       descriptorCount,
+                                       shaderStage,
+                                       variableCount};
 
             auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
             if(!insertionResult.second)