diff --git a/mpact/sim/util/renode/renode_cs/MpactCPU.cs b/mpact/sim/util/renode/renode_cs/MpactCPU.cs
index 94dd699..ebc82e1 100644
--- a/mpact/sim/util/renode/renode_cs/MpactCPU.cs
+++ b/mpact/sim/util/renode/renode_cs/MpactCPU.cs
@@ -257,7 +257,7 @@
             if (registerMap.Count == 0) {
                 GetMpactRegisters();
             }
-	    return GetRegisterUnsafe(PC_ID);
+	    return GetRegister(PC_ID);
         }
 
         set {
@@ -320,7 +320,7 @@
     }
 
     // ICPUWithRegisters methods implementations.
-    public  void SetRegisterUnsafe(int register, RegisterValue value) {
+    public  void SetRegister(int register, RegisterValue value) {
         var status = write_register((Int32)mpact_id, (Int32)register,
                                     (UInt64)value);
         if (status < 0) {
@@ -328,7 +328,11 @@
         }
     }
 
-    public  RegisterValue GetRegisterUnsafe(int register) {
+    public  void SetRegisterUnsafe(int register, RegisterValue value) {
+        SetRegister(register, value);
+    }
+
+    public  RegisterValue GetRegister(int register) {
         var status = read_register(mpact_id, register, value_ptr);
         if (status < 0) {
             LogAndThrowRE("Failed to read register " + register);
@@ -353,6 +357,10 @@
         return (ulong)0;
     }
 
+    public  RegisterValue GetRegisterUnsafe(int register) {
+        return GetRegister(register);
+    }
+
     protected void GetMpactRegisters() {
         if (registerMap.Count != 0) return;
         Int32 num_regs = get_reg_info_size(mpact_id);
