diff --git a/docs/processors/mia.rst b/docs/processors/mia.rst
index fd7c28ce3e6c7a708f1218ecf5014c481d9f97ae..c4f56f2cfc6922e71d66d83ee2b2b8296d697a72 100644
--- a/docs/processors/mia.rst
+++ b/docs/processors/mia.rst
@@ -58,11 +58,6 @@ Included modules
     :undoc-members:
     :show-inheritance:
 
-.. automodule:: simudator.processor.mia.mia_register
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
 .. automodule:: simudator.processor.mia.micro_pc
     :members:
     :undoc-members:
diff --git a/src/simudator/core/module.py b/src/simudator/core/module.py
index edd367fca29fef303741a9c5024218ca738ce15f..c28dab000729b49c20f44bde1e8a60fb5a554ee2 100644
--- a/src/simudator/core/module.py
+++ b/src/simudator/core/module.py
@@ -115,4 +115,4 @@ class Module:
         return self.name
 
     def __repr__(self) -> str:
-        return self.name
+        return f"Module({self.name!r})"
diff --git a/src/simudator/core/modules/register.py b/src/simudator/core/modules/register.py
index 4a3441b1aaaf58e4b44ee869cdab7727b2d590cc..1249424968cbb665ba6e7c4607aed2828d96502f 100644
--- a/src/simudator/core/modules/register.py
+++ b/src/simudator/core/modules/register.py
@@ -96,3 +96,75 @@ class Register(Module):
         print("", self.name, "\n -----",
               "\n value: ", self.value,
               )
+
+
+class IntegerRegister(Register):
+    """
+    A simple module that can store an integer value with a given bit-length.
+    """
+
+    def __init__(self, input_signal: Signal, output_signal: Signal,
+                 bit_length: int, value: int=0, name=None) -> None:
+
+        # set the registers name
+        if name is None:
+            name = f"{bit_length}-bit register"
+
+        super().__init__(input_signal, output_signal, value=value, name=name)
+
+        # set the bit length of the register
+        self.bit_length = bit_length
+
+        # set the registers mask. An 8 bit register should
+        # have the mask 1111 1111, aka one '1' for every bit
+        self.mask = 2**bit_length -1
+
+    def update_register(self) -> None:
+        """
+        Propagate the input signal to the registers internal state.
+        Throw away bits larger than the length of the register.
+        """
+        super().update_register()
+        self.value = self.value & self.mask
+
+    def get_state(self) -> dict[str: Any]:
+        """
+        Returns a dict of the register state.
+        These states are changable via set_states.
+        """
+        state = super().get_state()
+        state["bit_length"] = self.bit_length
+        state["mask"] = self.mask
+        return state
+
+    def set_state(self, state: dict[str: Any]) -> None:
+        """
+        Sets the register state to one given in dict.
+        """
+        super().set_state(state)
+        if "bit_length" in state:
+            self.bit_length = state["bit_length"]
+            self.mask = 2**self.bit_length -1
+
+    def reset(self) -> None:
+        self.value = 0
+
+    def get_input_signals(self) -> list[Signal]:
+        return [self.input_s]
+
+    def get_output_signals(self) -> list[Signal]:
+        return [self.output_s]
+
+    def save_state_to_file(self, file_path: str) -> None:
+        """
+        Tries to save the modules state to a given file.
+        """
+        file = open(file_path, "a")
+        file.write(self.name + ":\n")
+        file.write("value: " + hex(self.value)[2:] + "\n\n")
+        file.close()
+
+    def load_from_str(self, state_string):
+        string_pair = state_string.split(": ")
+        #TODO: Maybe check if it starts with value: ?
+        self.value = int(string_pair[1], 16)
diff --git a/src/simudator/gui/module_graphics_item/mia/__init__.py b/src/simudator/gui/module_graphics_item/mia/__init__.py
index 7764a5bb844d3010072865d202bc174f5dbcbe14..ae9bfec0ceaec5bedf85da4325457e04e66ad9b4 100644
--- a/src/simudator/gui/module_graphics_item/mia/__init__.py
+++ b/src/simudator/gui/module_graphics_item/mia/__init__.py
@@ -12,9 +12,6 @@ from simudator.gui.module_graphics_item.mia.mia_memory_graphic import (
 from simudator.gui.module_graphics_item.mia.mia_micro_memory_graphic import (
     MicroMemoryGraphicsItem,
 )
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    MiaRegisterGraphicsItem,
-)
 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
@@ -22,6 +19,5 @@ from simudator.gui.module_graphics_item.mia.upc_graphic import uPcGraphicsItem
 __all__ = ["MiaMemoryGraphicsItem", "MicroMemoryGraphicsItem", "ArGraphicsItem",
            "PcGraphicsItem", "AsrGraphicsItem", "HrGraphicsItem",
            "SupcGraphicsItem", "uPcGraphicsItem", "FlagGraphicsItem",
-           "BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem",
-           "MiaRegisterGraphicsItem"
+           "BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem"
            ]
diff --git a/src/simudator/gui/module_graphics_item/mia/ar_graphic.py b/src/simudator/gui/module_graphics_item/mia/ar_graphic.py
index c0e797243d01285eaf9a6a117b3cccd28a7eb972..2c7c9deb982292970beef4edf1412abc7bb3f46e 100644
--- a/src/simudator/gui/module_graphics_item/mia/ar_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/ar_graphic.py
@@ -1,11 +1,11 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.orientation import Orientation
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class ArGraphicsItem(RegisterGraphicsItem):
+class ArGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics item for mias AR register
     """
diff --git a/src/simudator/gui/module_graphics_item/mia/asr_graphic.py b/src/simudator/gui/module_graphics_item/mia/asr_graphic.py
index 2edbe83cece7d58bf0a121f3fe9bc68667f7c976..13c6c152737cc80c6509093197d7a3c4f23f61cd 100644
--- a/src/simudator/gui/module_graphics_item/mia/asr_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/asr_graphic.py
@@ -1,11 +1,11 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.orientation import Orientation
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class AsrGraphicsItem(RegisterGraphicsItem):
+class AsrGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics item for mias ASR module.
     """
diff --git a/src/simudator/gui/module_graphics_item/mia/hr_graphic.py b/src/simudator/gui/module_graphics_item/mia/hr_graphic.py
index 54000425d86be651818a04ee68fd9801becd50c0..1ca6e3684a1a37b982c4e8e6866cd07eefe9825c 100644
--- a/src/simudator/gui/module_graphics_item/mia/hr_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/hr_graphic.py
@@ -1,10 +1,10 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class HrGraphicsItem(RegisterGraphicsItem):
+class HrGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics module for mia's HR module.
     """
diff --git a/src/simudator/gui/module_graphics_item/mia/mia_flag_graphic.py b/src/simudator/gui/module_graphics_item/mia/mia_flag_graphic.py
index 9d182af4e12888690bfc5cbff66e8f1c588bade8..ee9563ff3f241a22b89527473f23875d4d3fb105 100644
--- a/src/simudator/gui/module_graphics_item/mia/mia_flag_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/mia_flag_graphic.py
@@ -1,14 +1,14 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.core.modules.register import IntegerRegister
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
-from simudator.processor.mia.mia_register import MiaRegister
 
 
-class FlagGraphicsItem(RegisterGraphicsItem):
+class FlagGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics module for mia's flag module.
     """
-    def __init__(self, module: MiaRegister):
+    def __init__(self, module: IntegerRegister):
         super().__init__(module)
 
     def draw_graphics_item(self):
diff --git a/src/simudator/gui/module_graphics_item/mia/mia_register_graphic.py b/src/simudator/gui/module_graphics_item/mia/mia_register_graphic.py
deleted file mode 100644
index dc0f7db66bf60e0c5562b400c7bafbbceed0cad6..0000000000000000000000000000000000000000
--- a/src/simudator/gui/module_graphics_item/mia/mia_register_graphic.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import math
-
-from simudator.gui.module_graphics_item.register_graphic import RegisterGraphicsItem
-
-
-class MiaRegisterGraphicsItem(RegisterGraphicsItem):
-    """
-    A general garphics item for mia's register modules.
-    Other mia register modules inherit this to get the same shape.
-    """
-
-    def update(self):
-        self.state = self.module.get_state()
-        name = self.state["name"]
-        value = self.state["value"]
-        hex_length = math.ceil(self.state["bit_length"]/4)
-
-        value_text = f"{value:0{hex_length}x}"
-        full_text = name + ": " + value_text
-
-        self.text.setText(full_text)
diff --git a/src/simudator/gui/module_graphics_item/mia/pc_graphic.py b/src/simudator/gui/module_graphics_item/mia/pc_graphic.py
index d039f4dfcff0bc9cbece10062f91e6b756e868e2..534dc332c44aa536f3e844f9b734d1684b5cdb61 100644
--- a/src/simudator/gui/module_graphics_item/mia/pc_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/pc_graphic.py
@@ -1,10 +1,10 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class PcGraphicsItem(RegisterGraphicsItem):
+class PcGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics module for mia's pc module.
     """
diff --git a/src/simudator/gui/module_graphics_item/mia/supc_graphic.py b/src/simudator/gui/module_graphics_item/mia/supc_graphic.py
index 2c977967ea3ba3d27628fe34573dd1ec9c299b7a..149065ce49b9fe801408a475a860e4fbe6582623 100644
--- a/src/simudator/gui/module_graphics_item/mia/supc_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/supc_graphic.py
@@ -1,11 +1,11 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.orientation import Orientation
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class SupcGraphicsItem(RegisterGraphicsItem):
+class SupcGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics module for mia's supc module.
     """
diff --git a/src/simudator/gui/module_graphics_item/mia/upc_graphic.py b/src/simudator/gui/module_graphics_item/mia/upc_graphic.py
index 43a2522e565d1766d62d334d0041c4b82b4e26fb..db664588f44eecd8caba04053b7e1c9d2bb226b0 100644
--- a/src/simudator/gui/module_graphics_item/mia/upc_graphic.py
+++ b/src/simudator/gui/module_graphics_item/mia/upc_graphic.py
@@ -1,11 +1,11 @@
-from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
-    RegisterGraphicsItem,
+from simudator.gui.module_graphics_item.register_graphic import (
+    IntegerRegisterGraphicsItem,
 )
 from simudator.gui.orientation import Orientation
 from simudator.gui.port_graphics_item import PortGraphicsItem
 
 
-class uPcGraphicsItem(RegisterGraphicsItem):
+class uPcGraphicsItem(IntegerRegisterGraphicsItem):
     """
     Graphics module for mia's micro pc module.
     """
diff --git a/src/simudator/gui/module_graphics_item/register_graphic.py b/src/simudator/gui/module_graphics_item/register_graphic.py
index 57bdee09873e14b94a54433746601c7f224e1117..d1ce000855454e3801adf4b42b91d1a6724bf615 100644
--- a/src/simudator/gui/module_graphics_item/register_graphic.py
+++ b/src/simudator/gui/module_graphics_item/register_graphic.py
@@ -1,3 +1,5 @@
+import math
+
 from qtpy.QtWidgets import QGraphicsRectItem, QGraphicsSimpleTextItem
 
 from simudator.gui.module_graphics_item.module_graphics_item import ModuleGraphicsItem
@@ -39,3 +41,21 @@ class RegisterGraphicsItem(ModuleGraphicsItem):
         full_text = name + ": " + value_text
 
         self.text.setText(full_text)
+
+
+class IntegerRegisterGraphicsItem(RegisterGraphicsItem):
+    """
+    A general garphics item for mia's register modules.
+    Other mia register modules inherit this to get the same shape.
+    """
+
+    def update(self):
+        self.state = self.module.get_state()
+        name = self.state["name"]
+        value = self.state["value"]
+        hex_length = math.ceil(self.state["bit_length"]/4)
+
+        value_text = f"{value:0{hex_length}x}"
+        full_text = name + ": " + value_text
+
+        self.text.setText(full_text)
diff --git a/src/simudator/processor/mia/ar.py b/src/simudator/processor/mia/ar.py
index b8225e738b71ec3e861fce8b506294713f4ad914..46dbd67b96f96a4988edc1705eee6c3b85735f99 100644
--- a/src/simudator/processor/mia/ar.py
+++ b/src/simudator/processor/mia/ar.py
@@ -1,9 +1,9 @@
+from simudator.core.modules.register import IntegerRegister
 from simudator.core.signal import Signal
 from simudator.processor.mia.mia_bus_connect import MiaBusConnector
-from simudator.processor.mia.mia_register import MiaRegister
 
 
-class AR(MiaRegister, MiaBusConnector):
+class AR(IntegerRegister, MiaBusConnector):
     """
     Register for saving AlU calculations in MIA.
     """
@@ -19,7 +19,7 @@ class AR(MiaRegister, MiaBusConnector):
 
         self.alu_output_signal = alu_output_signal
 
-        MiaRegister.__init__(self, alu_input_signal, bus_output_signal,
+        IntegerRegister.__init__(self, alu_input_signal, bus_output_signal,
                           bit_length, name=name)
         MiaBusConnector.__init__(self, bus_control_signal, bus_id)
 
@@ -30,13 +30,13 @@ class AR(MiaRegister, MiaBusConnector):
 
         # only update bus when asked too
         if self.write_to_bus():
-            MiaRegister.output_register(self)
+            IntegerRegister.output_register(self)
         else:
             self.output_s.update_value(None)
 
     def update_logic(self) -> None:
         if self.write_to_bus():
-            MiaRegister.output_register(self)
+            IntegerRegister.output_register(self)
         else:
             self.output_s.update_value(None)
 
diff --git a/src/simudator/processor/mia/asr.py b/src/simudator/processor/mia/asr.py
index 2778667b694fb772b20d8d9e1fb9d8b0385a6f08..d1b9990b4ee9e87d2a34226e60a42bee6acb6284 100644
--- a/src/simudator/processor/mia/asr.py
+++ b/src/simudator/processor/mia/asr.py
@@ -1,9 +1,9 @@
+from simudator.core.modules.register import IntegerRegister
 from simudator.core.signal import Signal
 from simudator.processor.mia.mia_bus_connect import MiaBusConnector
-from simudator.processor.mia.mia_register import MiaRegister
 
 
-class ASR(MiaRegister, MiaBusConnector):
+class ASR(IntegerRegister, MiaBusConnector):
     """
     Register for controlling the memory andress in MIA.
     """
@@ -16,13 +16,13 @@ class ASR(MiaRegister, MiaBusConnector):
                 bit_length: int,
                 name = "ASR") -> None:
 
-        MiaRegister.__init__(self, bus_input_signal, memory_output_signal,
+        IntegerRegister.__init__(self, bus_input_signal, memory_output_signal,
                           bit_length, name=name)
         MiaBusConnector.__init__(self, bus_control_signal, bus_id)
 
     def update_register(self) -> None:
         if self.read_from_bus():
-            MiaRegister.update_register(self)
+            IntegerRegister.update_register(self)
 
     def update_logic(self) -> None:
         if self.write_to_bus():
diff --git a/src/simudator/processor/mia/hr.py b/src/simudator/processor/mia/hr.py
index 03459a9b5a621e72570bf916bf4e99de2fad3235..529c8ed19b433c76fab50e36ec394b5b2ccaa1a3 100644
--- a/src/simudator/processor/mia/hr.py
+++ b/src/simudator/processor/mia/hr.py
@@ -1,9 +1,9 @@
+from simudator.core.modules.register import IntegerRegister
 from simudator.core.signal import Signal
 from simudator.processor.mia.mia_bus_connect import MiaBusConnector
-from simudator.processor.mia.mia_register import MiaRegister
 
 
-class HR(MiaRegister, MiaBusConnector):
+class HR(IntegerRegister, MiaBusConnector):
     """
     Register for saving large AlU calculations in MIA.
     """
@@ -23,7 +23,7 @@ class HR(MiaRegister, MiaBusConnector):
 
         self.alu_input_signal.add_destination(self)
 
-        MiaRegister.__init__(self, bus_input_signal, bus_output_signal,
+        IntegerRegister.__init__(self, bus_input_signal, bus_output_signal,
                           bit_lenght, name=name)
         MiaBusConnector.__init__(self, bus_control_signal, bus_id)
 
@@ -35,7 +35,7 @@ class HR(MiaRegister, MiaBusConnector):
         """
 
         if self.read_from_bus():
-            MiaRegister.update_register(self)
+            IntegerRegister.update_register(self)
 
         elif self.alu_input_signal.get_value() is not None:
             input_value = self.alu_input_signal.get_value()
@@ -51,7 +51,7 @@ class HR(MiaRegister, MiaBusConnector):
         self.alu_output_signal.update_value(self.value)
 
         if self.write_to_bus():
-            MiaRegister.output_register(self)
+            IntegerRegister.output_register(self)
 
         else:
             self.output_s.update_value(None)
diff --git a/src/simudator/processor/mia/mia.py b/src/simudator/processor/mia/mia.py
index 113f959d517eda7427470cb3ed8087255e731f0c..69e13dafd913b5e15aaf784209681ea8a60435af 100644
--- a/src/simudator/processor/mia/mia.py
+++ b/src/simudator/processor/mia/mia.py
@@ -4,6 +4,7 @@ from qtpy.QtWidgets import QApplication
 
 from simudator.cli.cli import CLI
 from simudator.core.modules.flag import Flag
+from simudator.core.modules.register import IntegerRegister
 from simudator.core.processor import Processor, Signal
 from simudator.gui.gui import GUI
 from simudator.gui.module_graphics_item.mia import (
@@ -30,7 +31,6 @@ from simudator.processor.mia.ir import IR
 from simudator.processor.mia.lc import LC
 from simudator.processor.mia.mia_grx import GRX
 from simudator.processor.mia.mia_memory import MiaMemory
-from simudator.processor.mia.mia_register import MiaRegister
 from simudator.processor.mia.micro_memory import MicroMemory
 from simudator.processor.mia.micro_pc import MicroPC
 
@@ -175,7 +175,7 @@ class MIA_CPU(Processor):
         # Su_PC specific
         SuPC_bit_length = 7
         SuPC_name = "SuPC"
-        Su_PC = MiaRegister(SuPC_uPC, uPC_SuPC, SuPC_bit_length,
+        Su_PC = IntegerRegister(SuPC_uPC, uPC_SuPC, SuPC_bit_length,
                          default_value, SuPC_name)
 
         # uM specific
diff --git a/src/simudator/processor/mia/mia_register.py b/src/simudator/processor/mia/mia_register.py
deleted file mode 100644
index ab2a279608c2b75ad21860d9d5092e0b990b2201..0000000000000000000000000000000000000000
--- a/src/simudator/processor/mia/mia_register.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from __future__ import annotations
-
-from typing import Any
-
-from simudator.core.modules.register import Register
-from simudator.core.signal import Signal
-
-
-class MiaRegister(Register):
-    """
-    A simple module that can store a value.
-    """
-
-    def __init__(self, input_signal: Signal, output_signal: Signal,
-                 bit_length: int, value=0, name="Register") -> None:
-
-        # set the registers name
-        super().__init__(input_signal, output_signal, value=value, name=name)
-
-        # set the bit length of the register
-        self.bit_length = bit_length
-
-        # set the registers mask. An 8 bit register should
-        # have the mask 1111 1111, aka one '1' for every bit
-        self.mask = 2**bit_length -1
-
-    def update_register(self) -> None:
-        """
-        Propagate the input signal to the registers internal state.
-        Throw away bits larger than the length of the register.
-        """
-        super().update_register()
-        self.value = self.value & self.mask
-
-    def get_state(self) -> dict[str: Any]:
-        """
-        Returns a dict of the register state.
-        These states are changable via set_states.
-        """
-        state = super().get_state()
-        state["bit_length"] = self.bit_length
-        state["mask"] = self.mask
-        return state
-
-    def set_state(self, state: dict[str: Any]) -> None:
-        """
-        Sets the register state to one given in dict.
-        """
-        super().set_state(state)
-        if "bit_length" in state:
-            self.bit_length = state["bit_length"]
-            self.mask = 2**self.bit_length -1
-
-    def reset(self) -> None:
-        self.value = 0
-
-    def get_input_signals(self) -> list[Signal]:
-        return [self.input_s]
-
-    def get_output_signals(self) -> list[Signal]:
-        return [self.output_s]
-
-    def save_state_to_file(self, file_path: str) -> None:
-        """
-        Tries to save the modules state to a given file.
-        """
-        file = open(file_path, "a")
-        file.write(self.name + ":\n")
-        file.write("value: " + hex(self.value)[2:] + "\n\n")
-        file.close()
-
-    def load_from_str(self, state_string):
-        string_pair = state_string.split(": ")
-        #TODO: Maybe check if it starts with value: ?
-        self.value = int(string_pair[1], 16)