diff --git a/Simulation/CMakeLists.txt b/Simulation/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ebee926ff0f5dddc115635ae72df4d0ade74a253
--- /dev/null
+++ b/Simulation/CMakeLists.txt
@@ -0,0 +1,16 @@
+
+gaudi_subdir(Simulation v0r0)
+
+find_package(Geant4)
+include(${Geant4_USE_FILE})
+
+# DetSimCore module
+
+set(DetSimCore_srcs
+    src/DetSimCore/*.cpp
+)
+
+gaudi_add_module(DetSimCore ${DetSimCore_srcs}
+    INCLUDE_DIRS GaudiKernel Geant4
+    LINK_LIBRARIES GaudiKernel Geant4
+)
diff --git a/Simulation/src/DetSimCore/DetSimAlg.cpp b/Simulation/src/DetSimCore/DetSimAlg.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..db328fce42c66c8acea38701fb08e6c69dc0cb9d
--- /dev/null
+++ b/Simulation/src/DetSimCore/DetSimAlg.cpp
@@ -0,0 +1,32 @@
+#include "DetSimAlg.h"
+
+DECLARE_COMPONENT(DetSimAlg)
+
+DetSimAlg::DetSimAlg(const std::string& name, ISvcLocator* pSvcLocator)
+: Algorithm(name, pSvcLocator) {
+
+}
+
+StatusCode
+DetSimAlg::initialize() {
+    StatusCode sc;
+
+    info() << "Initialize DetSimAlg... " << endmsg;
+
+    return sc;
+}
+
+StatusCode
+DetSimAlg::execute() {
+    StatusCode sc;
+    return sc;
+}
+
+StatusCode
+DetSimAlg::finalize() {
+    StatusCode sc;
+    return sc;
+}
+
+
+
diff --git a/Simulation/src/DetSimCore/DetSimAlg.h b/Simulation/src/DetSimCore/DetSimAlg.h
new file mode 100644
index 0000000000000000000000000000000000000000..4e3152c9749f7bcedffabc39c294880c0b9f3e6d
--- /dev/null
+++ b/Simulation/src/DetSimCore/DetSimAlg.h
@@ -0,0 +1,29 @@
+#ifndef DetSimAlg_h
+#define DetSimAlg_h
+
+#include <string>
+#include <vector>
+
+#include <GaudiKernel/Algorithm.h>
+#include <GaudiKernel/Property.h>
+
+
+
+class DetSimAlg: public Algorithm {
+public:
+    DetSimAlg(const std::string& name, ISvcLocator* pSvcLocator);
+
+    StatusCode initialize() override;
+    StatusCode execute() override;
+    StatusCode finalize() override;
+
+private:
+
+    Gaudi::Property<std::vector<std::string>> m_run_macs{this, "RunMacs"};
+    Gaudi::Property<std::vector<std::string>> m_run_cmds{this, "RunCmds"};
+    Gaudi::Property<std::vector<std::string>> m_vis_macs{this, "VisMacs"};
+};
+
+
+
+#endif