diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..2c0c530
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+riscv_emulator
\ No newline at end of file
diff --git a/.idea/editor.xml b/.idea/editor.xml
new file mode 100644
index 0000000..25c6c37
--- /dev/null
+++ b/.idea/editor.xml
@@ -0,0 +1,344 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0b76fe5
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..e466a1c
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.31)
+project(riscv_emulator)
+
+set(CMAKE_CXX_STANDARD 14)
+
+add_executable(riscv_emulator
+ src/main.cpp
+ src/components/Register.cpp
+ src/components/Register.h
+ src/components/Memory.cpp
+ src/components/Memory.h
+ src/Manager.cpp
+ src/Manager.h
+ src/loader/CommandParser.cpp
+ src/loader/CommandParser.h
+)
diff --git a/src/Manager.h b/src/Manager.h
index d20bac0..2e60c77 100644
--- a/src/Manager.h
+++ b/src/Manager.h
@@ -21,6 +21,11 @@ public:
Manager &operator=(const Manager &&) = delete;
~Manager() = default;
+ /**
+ *
+ * @param program_path Der Pfad zur .txt Quelldatei des Programmes
+ * @return Manager Instanz
+ */
static Manager *getInstance(const std::string &program_path);
diff --git a/src/components/Memory.h b/src/components/Memory.h
index 6e4cebe..a2b9ec7 100644
--- a/src/components/Memory.h
+++ b/src/components/Memory.h
@@ -28,6 +28,10 @@ public:
Memory &operator=(const Memory &&) = delete;
~Memory() = default;
+ /**
+ *
+ * @return Memory Instanz
+ */
static Memory *getInstance();
/**
diff --git a/src/components/Register.h b/src/components/Register.h
index d5bf2e2..7a2d035 100644
--- a/src/components/Register.h
+++ b/src/components/Register.h
@@ -28,6 +28,10 @@ public:
Register& operator=(const Register &&) = delete;
~Register() = default;
+ /**
+ *
+ * @return Register Instanz
+ */
static Register& getInstance();
/**
diff --git a/src/loader/CommandParser.h b/src/loader/CommandParser.h
index 2177963..7d1dbae 100644
--- a/src/loader/CommandParser.h
+++ b/src/loader/CommandParser.h
@@ -21,6 +21,10 @@ public:
CommandParser& operator=(const CommandParser&&) = delete;
~CommandParser() = default;
+ /**
+ *
+ * @return CommandParser Instanz
+ */
static CommandParser& getInstance();
/**