diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 97b9b48bbdd5886fbb8a82db0b1683936f142b3a..e355aa2287bd5e0f1c3ff03697d466d9496a06c0 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
index 171bc6acfb0e06b4b6c3cecab799a21b784b60ee..47b1fe723adb49a563d8c731d828e28d88ca2963 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin
index 1b5cbc73c6e61e5bf820916145dfd7bf1d415d90..126205d93af5e1d5f3c159e10c2c1574e7f4a2d2 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
index 95bab72c139aec6844f8b0fcd849a0ddc30fa572..56dcf9b95c2b028d13ec0f3f34b338ad9e02551e 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin
index 352033907f59a15563ae59d12b450338bd14ae98..48e6f72e72c2ef3eadd50630f7dde7a18cadf65b 100644
Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index f08260a3a186325b43aa1f1263fafa4e06b8d5be..300e8a5a0a0c9b8c3c4829f56649d150fd04b8fe 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index 3e742235542383603f5bec9a42fe8c9c5fde97cb..88cc5de061dc98369fb8cad93449d873030dfdee 100644
Binary files a/build/classes/java/main/model/FirefighterBoard.class and b/build/classes/java/main/model/FirefighterBoard.class differ
diff --git a/build/classes/java/main/model/FirefighterManager.class b/build/classes/java/main/model/FirefighterManager.class
index 89b6c24ed9ef15fad7b0854825234ded5a00d66a..409f7446ed1fcdee1bb253c76f39f4525a39d7b1 100644
Binary files a/build/classes/java/main/model/FirefighterManager.class and b/build/classes/java/main/model/FirefighterManager.class differ
diff --git a/build/libs/firefighter.jar b/build/libs/firefighter.jar
index 499a4746df06417ae513e85862d43c1009313872..d8dab65624dde65d70f5b73fdf1561585519888a 100644
Binary files a/build/libs/firefighter.jar and b/build/libs/firefighter.jar differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 1359edc24a31a1f301ffff7a8d63ae879abe849e..d99f127bc5bc43cb13f95f102d8b43cfa8c61d5e 100644
Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 7305525e8f61db2eae6c5ef7227f6dae1597365f..9213bb9572483fa8e70712b34108f27ef1a6776d 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -45,6 +45,10 @@ public class Controller {
     // Ensure initial UI state is consistent
     updateGenerationLabel();
     pauseToggleButton.setSelected(true);
+    stopSimulation();
+    board.reset();
+    grid.repaint();
+    updateGenerationLabel();
   }
 
 
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 7a45e30989dca0f17f70252a47a86bee0af30ffb..5fd8107b0fed81ab10893d6a7a58a8d28d604350 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -124,9 +124,10 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
         // Update firefighter positions
         FirefighterManager firefighterManager = new FirefighterManager(new SimpleFirefighterMovementStrategy());
-        List<Position> firefighterModified = firefighterManager.moveFireFighters(firePositions, neighbors);
+        List<Position> firefighterModified = firefighterManager.moveFireFighters(firePositions, neighbors, firefighterPositions);
         modifiedPositions.addAll(firefighterModified);
-        firefighterPositions = firefighterManager.getFirefighterPositions();
+        this.firefighterPositions.clear();
+        this.firefighterPositions = firefighterModified;
 
         // After firefighters move, extinguish fire in the neighborhood
         extinguishNearbyFire(modifiedPositions);
diff --git a/src/main/java/model/FirefighterManager.java b/src/main/java/model/FirefighterManager.java
index ec12a1350431a100df56266a7742ff841628f078..56c77b83fab2fe9c0faacbe23f1af1a12c13b6e1 100644
--- a/src/main/java/model/FirefighterManager.java
+++ b/src/main/java/model/FirefighterManager.java
@@ -20,30 +20,24 @@ public class FirefighterManager {
         }
     }
 
-    public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
+    public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors,List<Position> firefighterPositions) {
         List<Position> modifiedPositions = new ArrayList<>();
-        List<Position> newPositions = new ArrayList<>();
+
 
         for (Position firefighterPosition : firefighterPositions) {
             // Move firefighters towards the nearest fire
             Position newPosition = movementStrategy.moveToClosestFire(firefighterPosition, firePositions, neighbors);
+            System.out.println(newPosition);
+            System.out.println(firefighterPosition);
+
 
-            // Extinguish fire in the neighboring cells
-            List<Position> nearbyFires = neighbors.get(newPosition);
-            for (Position firePosition : nearbyFires) {
-                if (firePositions.contains(firePosition)) {
-                    firePositions.remove(firePosition);  // Extinguish the fire
-                    modifiedPositions.add(firePosition); // Track the modified fire position
-                }
-            }
 
             // Update the firefighter's new position
-            newPositions.add(newPosition);
-            modifiedPositions.add(firefighterPosition);  // Track the original firefighter position
+
             modifiedPositions.add(newPosition);  // Track the new firefighter position
         }
-
-        firefighterPositions = newPositions;  // Update the firefighter positions list with new positions
+        firefighterPositions.clear();
+        firefighterPositions = modifiedPositions;  // Update the firefighter positions list with new positions
         return modifiedPositions;
     }
 
diff --git a/src/main/java/model/SimpleFirefighterMovementStrategy.java b/src/main/java/model/SimpleFirefighterMovementStrategy.java
index a8f59ec2a646f3cb564eed761865d002c847a492..31278aa7fbbecc53d761305f9b50cf85711cdbad 100644
--- a/src/main/java/model/SimpleFirefighterMovementStrategy.java
+++ b/src/main/java/model/SimpleFirefighterMovementStrategy.java
@@ -8,6 +8,7 @@ public class SimpleFirefighterMovementStrategy implements FirefighterMovementStr
     @Override
     public Position moveToClosestFire(Position current, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
         Position closestFire = null;
+        Position newposition = current;
         int minDistance = Integer.MAX_VALUE;
 
         for (Position fire : firePositions) {
@@ -18,9 +19,20 @@ public class SimpleFirefighterMovementStrategy implements FirefighterMovementStr
             }
         }
 
-        return closestFire != null && !closestFire.equals(current) ? closestFire : current;
+        if (closestFire != null) {
+            if (current.getRow()!=closestFire.getRow()){
+                if (current.getRow()<closestFire.getRow()) { newposition = new Position(current.getRow()+1, current.getCol()); }
+                else {  newposition = new Position(current.getRow()-1, current.getCol()); }
+            }
+            else  {
+                if(current.getCol()<closestFire.getCol()) {  newposition = new Position(current.getRow(), current.getCol()+1);}
+                else {  newposition = new Position(current.getRow(), current.getCol()-1); }
+            }
+        }
+        return newposition;
     }
 
+
     private int calculateDistance(Position a, Position b) {
         // Use Manhattan distance
         return Math.abs(a.getRow() - b.getRow()) + Math.abs(a.getCol() - b.getCol());