diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 6613e47b04f38abec1221a73a3fca275f80a3742..bf5d053a00ecac8a5e4c04c6f02c6fc206f53281 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -59,12 +59,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
 
   public void initializeElements() {
-    firefighterPositions = new ArrayList<>();
-    firePositions = new HashSet<>();
-    for (int index = 0; index < initialFireCount; index++)
-      firePositions.add(randomPosition());
-    for (int index = 0; index < initialFirefighterCount; index++)
+    // Initialize fires
+    fireManager.initializeFires(initialFireCount, rowCount, columnCount, randomGenerator);
+
+    // Initialize firefighters
+    List<Position> firefighterPositions = new ArrayList<>();
+    for (int index = 0; index < initialFirefighterCount; index++) {
       firefighterPositions.add(randomPosition());
+    }
+    firefighterManager.getFirefighterPositions().clear();
+    firefighterManager.getFirefighterPositions().addAll(firefighterPositions);
   }
 
   private Position randomPosition() {
@@ -100,16 +104,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   }
 
   private List<Position> updateFires() {
-    List<Position> modifiedPositions = new ArrayList<>();
-    if (step % 2 == 0) {
-      List<Position> newFirePositions = new ArrayList<>();
-      for (Position fire : firePositions) {
-        newFirePositions.addAll(neighbors.get(fire));
-      }
-      firePositions.addAll(newFirePositions);
-      modifiedPositions.addAll(newFirePositions);
-    }
-    return modifiedPositions;
+   return fireManager.updateFires(step,neighbors);
 
   }