diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py
index 5302f55a72d1270649efbac5324a94db791c9f6a..2c259a7f0e2952c443608ca4ff4f288a0860a559 100644
--- a/overcooked_simulator/overcooked_environment.py
+++ b/overcooked_simulator/overcooked_environment.py
@@ -247,6 +247,7 @@ class Environment:
             "player_speed_units_per_seconds"
         ]
         self.player_radius = self.environment_config["player_config"]["radius"]
+        self.player_interaction_range = self.environment_config["player_config"]["interaction_range"]
 
         progress_counter_classes = list(
             filter(
@@ -663,8 +664,15 @@ class Environment:
 
         for idx, p in enumerate(self.players.values()):
             if not (new_positions[idx] == player_positions[idx]).all():
-                p.turn(player_movement_vectors[idx])
-                p.move_abs(new_positions[idx])
+                p.pos = new_positions[idx]
+                p.perform_interact_stop()
+
+            p.turn(player_movement_vectors[idx])
+
+            facing_distances = np.linalg.norm(p.facing_point - self.counter_positions, axis=1)
+            closest_idx = facing_distances.argmin(axis=0)
+            closest_counter = self.counters[facing_distances.argmin(axis=0)]
+            p.current_nearest_counter = closest_counter if facing_distances[closest_idx] <= self.player_interaction_range else None
 
     def add_player(self, player_name: str, pos: npt.NDArray = None):
         """Add a player to the environment.
diff --git a/overcooked_simulator/player.py b/overcooked_simulator/player.py
index c367561e98862425ecc1590087ef7deb982e608e..2a8f58a6905165af665dccee7ce3e45016273e6f 100644
--- a/overcooked_simulator/player.py
+++ b/overcooked_simulator/player.py
@@ -88,19 +88,7 @@ class Player:
         function of the environment"""
         self.current_movement = move_vector
         self.movement_until = move_until
-
-    def move(self, movement: npt.NDArray[float]):
-        """Moves the player position by the given movement vector.
-        A unit direction vector multiplied by move_dist is added to the player position.
-
-        Args:
-            movement: 2D-Vector of length 1
-        """
-        if self.interacting and np.any(movement):
-            self.perform_interact_stop()
-        self.pos += movement
-        if np.linalg.norm(movement) != 0:
-            self.turn(movement)
+        self.perform_interact_stop()
 
     def move_abs(self, new_pos: npt.NDArray[float]):
         """Overwrites the player location by the new_pos 2d-vector. Absolute movement.