diff --git a/src/classes/assignment.js b/src/classes/assignment.js
index 46ca1dc2db949596b76ab3a660d2762195454bbd..a3fe7fff57779147685b52aa1369535c0637f633 100644
--- a/src/classes/assignment.js
+++ b/src/classes/assignment.js
@@ -321,10 +321,10 @@ class Task2 {
         let misplacedRobot = targetTable.getRobotAtTable();
         let token = await misplacedRobot.acquire();
         let promiseSleep = new Promise((resolve) => {
-            setTimeout(() => {
+            misplacedRobot.dummyAction().then( () => {
                 misplacedRobot.release(token);
                 resolve(true);
-            }, 4000 + Math.random() * 5000);
+            });
         });
         await safeTeleportTo(randRobot.getRobotID(), targetTable.getTableID());
         await promiseSleep;
diff --git a/src/classes/task2/robot-waiter.js b/src/classes/task2/robot-waiter.js
index afd2136ec3ea2dabd06e9ae2d68d0eabdad9e35e..682fdf1586d2f7119dc92d7aaa61c4d4a79e56f4 100644
--- a/src/classes/task2/robot-waiter.js
+++ b/src/classes/task2/robot-waiter.js
@@ -158,5 +158,20 @@ class RobotWaiter {
         this._nextAcquisitionToken = 0;
         this._acquisitionTokens = [];
     }
+
+    async dummyAction(){
+        this.#startProcess(`dummyAction()`);
+        try{
+            let actionTime = parseInt(2000 + Math.random() * 5000);
+            
+            await this.sleep(actionTime);
+        } catch (error) {
+            throw(error);
+        } finally {
+            this.#endProcess();
+        }
+        
+        return true;
+    }
     
 }
\ No newline at end of file