diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5d4167ac55538e8f2fb1e803b03233e447e0832b..5f2a6ae972a43aeabd00895be6c9befd037278f4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,5 +9,8 @@ set(CMAKE_CXX_STANDARD 20)
 
 
 add_executable("Info3_Praktikum-test"
-    src/testCommandList.cpp 
-)
\ No newline at end of file
+src/testCommandList.cpp 
+)
+
+# Add include directory
+target_include_directories("Info3_Praktikum-test" PUBLIC include/)
\ No newline at end of file
diff --git a/include/commandlib.h b/include/commandlib.h
new file mode 100644
index 0000000000000000000000000000000000000000..210b92647cd25bc566ad93d61d0fbf764ede9899
--- /dev/null
+++ b/include/commandlib.h
@@ -0,0 +1,34 @@
+// hsrt.mec.controldeveloper.core.com.command
+#pragma once
+#include <string>
+
+class ICommand
+{
+public:
+    virtual std::string getName() = 0;
+};
+
+class IDirection
+{
+public:
+    inline static const std::string direction = "Direction";
+
+    virtual int getDegree() = 0;
+};
+
+class IGear
+{
+public:
+    inline static const std::string gear = "Gear";
+
+    virtual int getSpeed() = 0;
+    virtual double getDuration() = 0;
+};
+
+class IPause
+{
+public:
+    inline static const std::string pause = "Pause";
+
+    virtual double getDuration() = 0;
+};
\ No newline at end of file