diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index d20a636d44bff5a0dde7772cfcc0f10d27a264fc..879c96b160f38bae4cd47433c8dfbc4e6ae1bdf4 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -57,4 +57,5 @@ public class SimulatorApplication extends javafx.application.Application {
   public static void main(String[] args) {
     launch(args);
   }
+
 }
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 3291416ce093e7e302361b4aa2d7ae26d064851e..3482ecee980103fe888f90a7a2d4aef5b1d51124 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -130,7 +130,7 @@ public class Controller {
   }
 
   public void initialize(int squareWidth, int squareHeight, int columnCount,
-                                int rowCount, int initialFireCount, int initialFirefighterCount) {
+                         int rowCount, int initialFireCount, int initialFirefighterCount) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
     this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount));
     repaintGrid();
@@ -144,4 +144,4 @@ public class Controller {
   private void updateGenerationLabel(int value){
     generationNumberLabel.setText(Integer.toString(value));
   }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/model/Element/FireFigther.java b/src/main/java/model/Element/FireFigther.java
new file mode 100644
index 0000000000000000000000000000000000000000..2408cd60d55a9a0c64a8fbbb846d0e11afd520be
--- /dev/null
+++ b/src/main/java/model/Element/FireFigther.java
@@ -0,0 +1,41 @@
+package model.Element;
+
+import util.Position;
+import view.ViewElement;
+
+import java.util.List;
+import java.util.Map;
+
+import static util.Tools.*;
+
+public class FireFigther implements ModelElement{
+    @Override
+    public void update(Position position, Map<Position, List<ModelElement>> board, int step, int columnCount, int rowCount) {
+            for (Position position1 : neighbors(position, rowCount, columnCount)) {
+                if (board.containsKey(position1)) {
+                    if (board.get(position1).contains(new Fire())) {
+                        extinguish(position,board);
+                        return;
+                    }
+
+                }
+
+            }
+            Position newPositionStep = neighborClosestToFire(position,board,rowCount,columnCount);
+            extinguish(newPositionStep,board);
+            addElement(newPositionStep,board,new MotorisedFirefigther());
+            removeElement(position,board,new MotorisedFirefigther());
+
+
+    }
+
+    @Override
+    public ViewElement getViewElement() {
+        return ViewElement.FIREFIGHTER;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        return obj instanceof FireFigther;
+    }
+}
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index e7e11915a87dab3b363164164454a1577d19b150..c520278216887e6f8dca58ce583867af44018a09 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -13,23 +13,30 @@ import static util.Tools.addElement;
 public class FirefighterBoard implements Board<List<ModelElement>> {
   private final int columnCount;
   private final int rowCount;
-
+  private  int  initialFireCount ;
+  private int initialFirefighterCount;
   private Map<Position,List<ModelElement>>board;
-  private Map<ModelElement,Integer>intialboard;
+
 
   private int step = 0;
   private final Random randomGenerator = new Random();
 
-  public FirefighterBoard(int columnCount, int rowCount, Map<ModelElement,Integer>intialboard) {
+  public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) {
     this.columnCount = columnCount;
     this.rowCount = rowCount;
+    this.initialFirefighterCount=initialFirefighterCount;
+    this.initialFireCount=initialFireCount;
     board=new HashMap<>();
-    initializeElements(new Fire);
+    initializeElements();
   }
 
-  public void initializeElements(ModelElement modelElement) {
-    for (int index = 0; index < intialboard.get(modelElement); index++)
-      addElement(randomPosition(),board,modelElement);
+  public void initializeElements() {
+    for (int index = 0; index < initialFireCount; index++) {
+        addElement(randomPosition(),board,new Fire());
+    }
+    for (int index = 0; index < initialFirefighterCount; index++) {
+      addElement(randomPosition(),board,new FireFigther());
+    }
   }
 
   private Position randomPosition() {
@@ -60,9 +67,9 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
 
     for (Position position:copieBord.keySet()
-         ) {
+    ) {
       for (ModelElement element:copieBord.get(position)
-           ) {
+      ) {
         element.update(position,board,step,columnCount,rowCount);
       }
 
@@ -79,7 +86,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   public int stepNumber() {
     return step;
   }
-  
+
   @Override
   public void reset() {
     step = 0;
@@ -96,4 +103,4 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   }
 
 
-}
\ No newline at end of file
+}
diff --git a/src/main/java/util/Tools.java b/src/main/java/util/Tools.java
index 1abf0f3705b78288c57e838188eaa50752380ad4..84098d694fe88cc0c3cfe57e7cfe6e764be555ec 100644
--- a/src/main/java/util/Tools.java
+++ b/src/main/java/util/Tools.java
@@ -7,6 +7,8 @@ import model.Element.Mountain;
 
 import java.util.*;
 
+
+
 public class Tools {
     public static List<Position> neighbors(Position position , int rowCount , int columnCount) {
         List<Position> list = new ArrayList<>();
@@ -36,7 +38,6 @@ public class Tools {
                     }
                     toVisit.add(adjacent);
                     seen.add(adjacent);
-        HashMap<Position, Position> firstMove = new HashMap
                     firstMove.put(adjacent, firstMove.get(current));
 
                 }
@@ -67,4 +68,5 @@ public class Tools {
     }
 
 
+
 }
diff --git a/src/test/java/model/FirefighterBoardTest.java b/src/test/java/model/FirefighterBoardTest.java
index 4feb1d1d4dc8fead78109ae758d521aa91797c25..532a38b409c2209d14d637d393a9b5d0b6fd11ad 100644
--- a/src/test/java/model/FirefighterBoardTest.java
+++ b/src/test/java/model/FirefighterBoardTest.java
@@ -1,5 +1,6 @@
 package model;
 
+import model.Element.Fire;
 import model.Element.ModelElement;
 import org.junit.jupiter.api.Test;
 import util.Position;
@@ -33,8 +34,8 @@ public class FirefighterBoardTest {
     Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0);
     Position position = new Position(1,2);
     assertThat(board.getState(position)).isEmpty();
-    board.setState(List.of(ModelElement.FIRE), position);
-    assertThat(board.getState(position)).containsExactly(ModelElement.FIRE);
+    board.setState(List.of(new Fire()), position);
+    assertThat(board.getState(position)).containsExactly(new Fire());
   }
 
 }