diff --git a/projects/draw_indirect/src/main.cpp b/projects/draw_indirect/src/main.cpp
index 2f93f497f89096f21c226a4b28abda994a09a990..385e78aab014d90e654267e5ce799ddc264592ef 100644
--- a/projects/draw_indirect/src/main.cpp
+++ b/projects/draw_indirect/src/main.cpp
@@ -227,12 +227,7 @@ int main(int argc, const char** argv) {
 
     // vertex layout for the pipeline. (assumed to be) used by all sponza meshes.
     const std::vector<vkcv::VertexAttachment> vertexAttachments = sponzaProgram.getVertexAttachments();
-    std::vector<vkcv::VertexBinding> bindings;
-    for (size_t i = 0; i < vertexAttachments.size(); i++)
-    {
-        bindings.push_back(vkcv::VertexBinding(i, { vertexAttachments[i] }));
-    }
-    const vkcv::VertexLayout sponzaVertexLayout (bindings);
+	const vkcv::VertexLayout sponzaVertexLayout({ vkcv::VertexBinding(0, { vertexAttachments }) });
 
     // recreation of VertexBufferBindings YET AGAIN,
     // since these are used in the command buffer to bind and draw from the vertex shaders
@@ -247,7 +242,6 @@ int main(int argc, const char** argv) {
                           compiledIndexBuffer,
                           indexedIndirectCommands);
 
-
     vkcv::Buffer<vk::DrawIndexedIndirectCommand> indirectBuffer = core.createBuffer<vk::DrawIndexedIndirectCommand>(
             vkcv::BufferType::INDIRECT,
             indexedIndirectCommands.size() * sizeof(vk::DrawIndexedIndirectCommand),
diff --git a/src/vkcv/VertexLayout.cpp b/src/vkcv/VertexLayout.cpp
index fa079a3264ae47b32461bda26485adb97b0be280..0edced571502bbaf0e89ff6d45d338ca38b229ca 100644
--- a/src/vkcv/VertexLayout.cpp
+++ b/src/vkcv/VertexLayout.cpp
@@ -46,8 +46,8 @@ namespace vkcv {
         uint32_t offset = 0;
         for (auto &attachment : vertexAttachments)
         {
-            offset += getFormatSize(attachment.format);
             attachment.offset = offset;
+            offset += getFormatSize(attachment.format);
         }
         stride = offset;
     }