diff --git a/src/main/java/model/ClassicFireFighter.java b/src/main/java/model/ClassicFireFighter.java
index a171e3d4e4b6c3d8d42089e2d4a86c9313d8d9c3..13fefbecb116637cb28375a542138efd742ebf6f 100644
--- a/src/main/java/model/ClassicFireFighter.java
+++ b/src/main/java/model/ClassicFireFighter.java
@@ -2,10 +2,28 @@ package model;
 
 import util.Position;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 public class ClassicFireFighter extends FirefighterManager{
     public ClassicFireFighter(List<Position> firefighterPositions) {
         super(firefighterPositions);
     }
+    @Override
+    public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) {
+        List<Position> modifiedPositions = new ArrayList<>();
+        for (Position firefighterPosition : firefighterPositions) {
+            Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors);
+            setFirefighterPosition(firefighterPosition, newFirefighterPosition);
+
+            if (fireManager.isOnFire(newFirefighterPosition)) {
+                extinguishFire(newFirefighterPosition);
+            }
+
+            modifiedPositions.add(firefighterPosition);
+            modifiedPositions.add(newFirefighterPosition);
+        }
+        return modifiedPositions;
+    }
 }
diff --git a/src/main/java/model/FirefighterBehavior.java b/src/main/java/model/FirefighterBehavior.java
index 708ceb5026feb5223dff70e51f1cdce27e00f30b..89773dcfad96ff72878698e316b9b92c4b3fa22b 100644
--- a/src/main/java/model/FirefighterBehavior.java
+++ b/src/main/java/model/FirefighterBehavior.java
@@ -10,5 +10,5 @@ public interface FirefighterBehavior {
     Position moveToTarget(Position currentPosition, Collection<Position> firePositions,
                           Map<Position, List<Position>> neighbors); // Déplacer un pompier vers une cible.
     void extinguishFire(Position firePosition); // Éteindre un feu à une position donnée.
-    public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors);
+   // public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors);
 }
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index e195363c0514ffa0d356b8c86120b26b6a8d0d60..213e9ac26b8202c8ef65a55c2ef94c601a56b2a6 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -11,8 +11,8 @@ public class FirefighterBoard  implements BoardBehavior<List<ModelElement>> ,Boa
   private final int initialFireCount;
   private final int initialFirefighterCount;
 
-  private final FireManager fireManager;
-  private final FirefighterManager firefighterManager;
+  private  FireManager fireManager;
+  private FirefighterManager firefighterManager;
 
   private final Position[][] positions;
   private int step = 0;
@@ -28,9 +28,9 @@ public class FirefighterBoard  implements BoardBehavior<List<ModelElement>> ,Boa
     initializePositions();
     initializeNeighbors();
     // Initialize manager
-    this.fireManager = new FireManager(new HashSet<>(),new FirefighterManager(new ArrayList<>()));
-    this.firefighterManager = new FirefighterManager(new ArrayList<>());
-    this.firefighterManager.setFireManager(fireManager);
+   // this.fireManager = new FireManager(new HashSet<>(),new FirefighterManager(new ArrayList<>()));
+    //this.firefighterManager = new FirefighterManager(new ArrayList<>());
+    //this.firefighterManager.setFireManager(fireManager);
 
     initializeElements();
   }
diff --git a/src/main/java/model/FirefighterManager.java b/src/main/java/model/FirefighterManager.java
index 9cce634954552be7201fb2588e66122872ec5e49..1317bb1cbd7b025e0a223383dec11810c718968f 100644
--- a/src/main/java/model/FirefighterManager.java
+++ b/src/main/java/model/FirefighterManager.java
@@ -8,8 +8,8 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-public class FirefighterManager implements FirefighterBehavior, FirefighterProperties {
-    private List<Position> firefighterPositions;
+public abstract class FirefighterManager implements FirefighterBehavior, FirefighterProperties {
+    protected List<Position> firefighterPositions;
     FireManager fireManager;
 
     public void setFireManager(FireManager fireManager) {
@@ -41,26 +41,7 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope
         firefighterPositions.remove(oldPosition);
         firefighterPositions.add(newPosition);
     }
-    @Override
-    public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) {
-        List<Position> modifiedPositions = new ArrayList<>();
-        List<Position> firefighterPositionsCopy = new ArrayList<>(firefighterPositions);
-
-        for (Position firefighterPosition : firefighterPositionsCopy) {
-            // Déplacement des pompiers
-            Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors);
-            setFirefighterPosition(firefighterPosition, newFirefighterPosition);
-
-            // Vérifier si un feu est à la nouvelle position et l'éteindre
-            if (fireManager.isOnFire(newFirefighterPosition)) {
-                extinguishFire(newFirefighterPosition);
-            }
 
-            modifiedPositions.add(firefighterPosition);
-            modifiedPositions.add(newFirefighterPosition);
-        }
-
-        return modifiedPositions;
-    }
+    public abstract List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) ;
 
 }