 
     mouseMove: (handPosition) =>
         if(@mouseState == 'free')
-            @offsetMapping =
-                x: @freezePosition.x - @unfreezePosition.x
-                y: @freezePosition.y - @unfreezePosition.y
-
             screenSize = @robot.getScreenSize()
             normalizedHandPosition =
                 x: handPosition.x * screenSize.width
                 y: handPosition.y * screenSize.height
+            offsetMapping =
+                x: @freezePosition.x - @unfreezePosition.x
+                y: @freezePosition.y - @unfreezePosition.y
             moveTo =
-                x: normalizedHandPosition.x + @offsetMapping.x
-                y: normalizedHandPosition.y + @offsetMapping.y
+                x: normalizedHandPosition.x + offsetMapping.x
+                y: normalizedHandPosition.y + offsetMapping.y
             @robot.moveMouse(moveTo.x, moveTo.y)
 
     # buttonAction: up|down|click|doubleClick, button: left|right

            x: handPosition.x * screenSize.width
            y: handPosition.y * screenSize.height
        @unfreezePosition = normalizedHandPosition
        console.log "Unfreeze mouse", @unfreezePosition
        @mouseState = 'free'

    toggleMouseFreeze: (handPosition) =>

        #console.log "Execute action: ", action
        cmd = @actions[action]
        # console.log "cmd: ", cmd
        screenSize = @robot.getScreenSize()

        if(cmd.feedback?)
            if(cmd.feedback.audio?)
