diff --git a/src/simudator/gui/module_graphics_item/mia/__init__.py b/src/simudator/gui/module_graphics_item/mia/__init__.py
index d52403da05c74ce08202946bf99e1f9224579167..bc78898684ff12f5378b199280b8750a9ff7d94e 100644
--- a/src/simudator/gui/module_graphics_item/mia/__init__.py
+++ b/src/simudator/gui/module_graphics_item/mia/__init__.py
@@ -10,6 +10,9 @@ from simudator.gui.module_graphics_item.mia.mia_memory_graphic import MemoryGrap
 from simudator.gui.module_graphics_item.mia.mia_micro_memory_graphic import (
     MicroMemoryGraphicsItem,
 )
+from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
+    RegisterGraphicsItem,
+)
 from simudator.gui.module_graphics_item.mia.pc_graphic import PcGraphicsItem
 from simudator.gui.module_graphics_item.mia.supc_graphic import SupcGraphicsItem
 from simudator.gui.module_graphics_item.mia.upc_graphic import uPcGraphicsItem
@@ -17,5 +20,6 @@ from simudator.gui.module_graphics_item.mia.upc_graphic import uPcGraphicsItem
 __all__ = ["MemoryGraphicsItem", "MicroMemoryGraphicsItem", "ArGraphicsItem",
            "PcGraphicsItem", "AsrGraphicsItem", "HrGraphicsItem",
            "SupcGraphicsItem", "uPcGraphicsItem", "FlagGraphicsItem",
-           "BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem"
+           "BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem",
+           "RegisterGraphicsItem"
            ]
diff --git a/src/simudator/processor/simple/simple.py b/src/simudator/processor/simple/simple.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f24ba721b10dd548ec998c5097a69922ad7c504
--- /dev/null
+++ b/src/simudator/processor/simple/simple.py
@@ -0,0 +1,89 @@
+import sys
+
+from PyQt5.QtWidgets import QApplication
+
+from simudator.cli.cli import CLI
+from simudator.core.modules import Memory, Register
+from simudator.core.processor import Processor, Signal
+from simudator.gui.gui import GUI
+from simudator.gui.module_graphics_item.mia import (
+    MemoryGraphicsItem,
+    RegisterGraphicsItem,
+)
+
+
+class SIMPLE_CPU(Processor):
+    """
+    This cpu is made to test core modules and module graphics items for these modules.
+    """
+
+    def __init__(self) -> None:
+        super().__init__()
+        # Creating all signals
+        # Signals follow the naming convention 'to_from'
+        self.max_line_len = 100
+
+        # Dummy values used when the values in the constructor is not needed
+        # unused = Signal(self)
+
+        # Needed since optional arguments need to be in the correct order
+
+        mem_input = Signal(self, "mem_input")
+        mem_output = Signal(self, "mem_output")
+        mem_control = Signal(self, "mem_control")
+        mem_adress = Signal(self, "mem_adress")
+        register_signal = Signal(self, "empty")
+
+        self.memory = Memory(mem_input, mem_output,mem_control,mem_adress, 10)
+        self.input_register = Register(register_signal, mem_input, name="Input Reg")
+        self.output_register = Register(mem_output,
+                                        register_signal, name="Output Reg")
+        self.control_register = Register(mem_control,
+                                        register_signal, name="Control Reg")
+        self.adress_register = Register(mem_adress, register_signal, name="Adress Reg")
+
+
+        ALLTHEMODULES = [self.memory, self.input_register, self.output_register,
+                         self.control_register, self.adress_register]
+
+        for module in ALLTHEMODULES:
+            self.add_module(module)
+
+        self.lambdas = {}
+
+    def launch_gui(self):
+        app = QApplication(sys.argv)
+        self.reset()
+        gui = GUI(self)
+
+        gui.addModuleGraphicsItem(MemoryGraphicsItem(self.memory))
+        gui.addModuleGraphicsItem(RegisterGraphicsItem(self.input_register))
+        gui.addModuleGraphicsItem(RegisterGraphicsItem(self.output_register))
+        gui.addModuleGraphicsItem(RegisterGraphicsItem(self.control_register))
+        gui.addModuleGraphicsItem(RegisterGraphicsItem(self.adress_register))
+
+        gui.addAllSignals()
+        gui.show()
+        app.exec()
+
+    def launch_cli(self):
+        cli = CLI(self)
+        self.reset()
+        cli.run()
+
+
+
+if __name__ == "__main__":
+
+    # this is bad terminal code, but who cares
+    cpu = SIMPLE_CPU()
+    flag = None
+    try:
+        flag = sys.argv[1]
+    except IndexError:
+        pass
+
+    if flag in ("gui", "g", "-gui"):
+        cpu.launch_gui()
+    else:
+        cpu.launch_cli()