diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
index 648fdf72a73ee3e6a4f787444305dfc5381a189d..3521353096d884fff922037e30e6fe74b687db26 100644
--- a/src/main/java/model/Fire.java
+++ b/src/main/java/model/Fire.java
@@ -19,4 +19,8 @@ public class Fire {
     public Position getFirePosition() {
         return firePositions;
     }
+
+
+
+
 }
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 5627c7c26674dcd2a47bfbe57eb3a8e90d349761..ae9de0727e3569fe7085bfb5b4721fccb0be4653 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -1,10 +1,14 @@
 package model;
 
+import util.TargetStrategy;
+
+
 import util.Position;
 
 import java.util.*;
 
 
+
 public class FirefighterBoard implements Board<List<ModelElement>> {
   private final int columnCount;
   private final int rowCount;
@@ -42,7 +46,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   public void initializeElements() {
     firefighter = new ArrayList<>();
     fire = new HashSet<>();
-    for (int index = 0; index < initialFireCount; index++){
+    for (int index = 0; index < initialFireCount; index++) {
       fire.add(new Fire(randomPosition()));
     }
 
@@ -61,11 +65,11 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
       if (firefighter.getFireFighterPosition().equals(position))
         result.add(ModelElement.FIREFIGHTER);
 
-      for(Fire fire : fire){
-        if(fire.getFirePosition().equals(position)){
-          result.add(ModelElement.FIRE);
-        }
+    for (Fire fire : fire) {
+      if (fire.getFirePosition().equals(position)) {
+        result.add(ModelElement.FIRE);
       }
+    }
     return result;
   }
 
@@ -90,10 +94,14 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     List<Position> modifiedPositions = new ArrayList<>();
     if (step % 2 == 0) {
       List<Position> newFirePositions = new ArrayList<>();
-      for (Fire fire : fires) {
+      for (Fire fire : fire) {
         newFirePositions.addAll(neighbors.get(fire));
       }
-      firePositions.addAll(newFirePositions);
+
+      for (Position position : newFirePositions) {
+        fire.add(new Fire(position));
+      }
+
       modifiedPositions.addAll(newFirePositions);
     }
     return modifiedPositions;
@@ -108,13 +116,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   private List<Position> updateFirefighters() {
     List<Position> modifiedPosition = new ArrayList<>();
     List<Position> firefighterNewPositions = new ArrayList<>();
-    for (Position firefighterPosition : firefighterPositions) {
+    for (FireFighter firefighterPosition : firefighter) {
       Position newFirefighterPosition =
               targetStrategy.neighborClosestToFire(firefighterPosition,
                       firePositions, neighbors);
       firefighterNewPositions.add(newFirefighterPosition);
       extinguish(newFirefighterPosition);
-      modifiedPosition.add(firefighterPosition);
+      modifiedPosition.add(firefighterPosition.getFireFighterPosition());
       modifiedPosition.add(newFirefighterPosition);
       List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
               .filter(firePositions::contains).toList();
@@ -133,21 +141,33 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   }
 
   private void extinguish(Position position) {
-    firePositions.remove(position);
+    fire.remove(position);
+
   }
 
 
   @Override
   public void setState(List<ModelElement> state, Position position) {
-    firePositions.remove(position);
+    extinguish(position);
     for (; ; ) {
-      if (!firefighterPositions.remove(position)) break;
-    }
-    for (ModelElement element : state) {
-      switch (element) {
-        case FIRE -> firePositions.add(position);
-        case FIREFIGHTER -> firefighterPositions.add(position);
+
+      for (FireFighter fireFighter : firefighter) {
+        if (fireFighter.getFireFighterPosition().equals(position)) {
+          firefighter.remove(position);
+          break;
+        }
+      }
+
+
+      for (ModelElement element : state) {
+        switch (element) {
+          case FIRE -> fire.add(new Fire(position));
+          case FIREFIGHTER -> firefighter.add(new FireFighter(position));
+        }
       }
     }
   }
+
+
+
 }
\ No newline at end of file
diff --git a/src/main/java/util/TargetStrategy.java b/src/main/java/util/TargetStrategy.java
index 583186787d4d8d47173fbe61cc424f2f7ee384c9..071869cfe268ffb832b1568abaad12c2947f12e6 100644
--- a/src/main/java/util/TargetStrategy.java
+++ b/src/main/java/util/TargetStrategy.java
@@ -1,4 +1,4 @@
-package model;
+package util;
 
 import util.Position;