diff --git a/modules/rtx/CMakeLists.txt b/modules/rtx/CMakeLists.txt
index 061687c41636a35f575e9368c711d37d8e0ae362..2a574bcf2e8c69f85affa78ed83e5abb0f4b3766 100644
--- a/modules/rtx/CMakeLists.txt
+++ b/modules/rtx/CMakeLists.txt
@@ -11,10 +11,19 @@ set(vkcv_rtx_include ${PROJECT_SOURCE_DIR}/include)
 set(vkcv_rtx_sources
 		${vkcv_rtx_include}/vkcv/rtx/RTX.hpp
 		${vkcv_rtx_source}/vkcv/rtx/RTX.cpp
+
+		${vkcv_rtx_include}/vkcv/rtx/ASManager.hpp
+		${vkcv_rtx_source}/vkcv/rtx/ASManager.cpp
 )
 
 # adding source files to the project
 add_library(vkcv_rtx STATIC ${vkcv_rtx_sources})
 
+# link the required libraries to the module
+target_link_libraries(vkcv_rtx vkcv)
+
+# including headers of dependencies and the VkCV framework
+target_include_directories(vkcv_rtx SYSTEM BEFORE PRIVATE ${vkcv_include})
+
 # add the own include directory for public headers
-target_include_directories(vkcv_rtx BEFORE PUBLIC ${vkcv_rtx_include} ${Vulkan_INCLUDE_DIR} ${Vulkan_LIBRARIES})
\ No newline at end of file
+target_include_directories(vkcv_rtx BEFORE PUBLIC ${vkcv_rtx_include})
\ No newline at end of file
diff --git a/modules/rtx/include/vkcv/rtx/ASManager.hpp b/modules/rtx/include/vkcv/rtx/ASManager.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..db6c67a6c341a3e145a82173d7f8e8560e6ab554
--- /dev/null
+++ b/modules/rtx/include/vkcv/rtx/ASManager.hpp
@@ -0,0 +1,18 @@
+#pragma once
+
+#include <vkcv/Core.hpp>
+
+namespace vkcv::rtx {
+
+    class ASManager {
+    private:
+        vkcv::BufferHandle m_buffer;
+
+    public:
+
+        /**
+         * @brief TODO
+         */
+        ASManager(vkcv::Core *core);
+    };
+}
\ No newline at end of file
diff --git a/modules/rtx/src/vkcv/rtx/ASManager.cpp b/modules/rtx/src/vkcv/rtx/ASManager.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..70d12c4bdd2d5bb07b74eddddea75209d190fceb
--- /dev/null
+++ b/modules/rtx/src/vkcv/rtx/ASManager.cpp
@@ -0,0 +1,23 @@
+#include "vkcv/rtx/ASManager.hpp"
+
+namespace vkcv::rtx {
+
+    ASManager::ASManager(vkcv::Core *core) {
+        // RaytracingBuilder : build BLAS
+        // BLAS is a vector of BLASEntries which take entries of BLASInput vector
+
+        // we need to prepare build information for acceleration build command
+//        std::vector<vk::AccelerationStructureBuildGeometryInfoKHR> buildInfos(0 /* size of BLAS vector as uint32_t */);
+
+
+        // list of BLAS -> for each BLAS take AccelKHR -> createAcceleration(VkAccelerationStructureCreateInfoKHR)
+//        vk::AccelerationStructureCreateInfoKHR asCreateInfo = {
+//                {},
+//                /* hier muss ein buffer hin */
+//        };
+//        asCreateInfo.
+
+//        m_buffer = core->createBuffer<void*>(vkcv::BufferType::RT_ACCELERATION, )   // we need the size for the buffer :c
+    }
+
+}
\ No newline at end of file