diff --git a/src/main/java/firefighter/model/Board.java b/src/main/java/firefighter/model/Board.java
index df5996d5d206bcc461f3c576633c22557d9c81ce..e53a9dd8985066e46f1df09737b94e649b9806c9 100644
--- a/src/main/java/firefighter/model/Board.java
+++ b/src/main/java/firefighter/model/Board.java
@@ -19,6 +19,14 @@ public interface Board<S> {
    */
   S getState(Position position);
 
+  /**
+   * Set the state of a specific position on the board to the specified state.
+   *
+   * @param state The state to set for the given position.
+   * @param position The position on the board for which to set the state.
+   */
+  void setState(S state, Position position);
+
   /**
    * Get the number of rows in the board.
    *
diff --git a/src/main/java/firefighter/model/FirefighterBoard.java b/src/main/java/firefighter/model/FirefighterBoard.java
index ac7d33b6aee2d2a60657274f3116842d301889c2..925a162e1596b7b31af64cd7ec4851e64509b4e5 100644
--- a/src/main/java/firefighter/model/FirefighterBoard.java
+++ b/src/main/java/firefighter/model/FirefighterBoard.java
@@ -140,4 +140,14 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     }
     return position;
   }
+
+  @Override
+  public void setState(List<ModelElement> state, Position position) {
+    for(ModelElement element : state){
+      switch (element){
+        case FIRE -> firePositions.add(position);
+        case FIREFIGHTER -> firefighterPositions.add(position);
+      }
+    }
+  }
 }
\ No newline at end of file
diff --git a/src/test/java/firefighter/model/FirefighterBoardTest.java b/src/test/java/firefighter/model/FirefighterBoardTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9b794cf5c3b35a222c44d671f6930c74056ae82
--- /dev/null
+++ b/src/test/java/firefighter/model/FirefighterBoardTest.java
@@ -0,0 +1,29 @@
+package firefighter.model;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.*;
+
+public class FirefighterBoardTest {
+  @Test
+  void testColumnCount(){
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    assertThat(board.columnCount()).isEqualTo(20);
+  }
+  @Test
+  void testRowCount(){
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    assertThat(board.rowCount()).isEqualTo(10);
+  }
+  @Test
+  void testStepNumber(){
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    for(int index = 0; index < 10; index++){
+      assertThat(board.stepNumber()).isEqualTo(index);
+      board.updateToNextGeneration();
+    }
+    assertThat(board.stepNumber()).isEqualTo(10);
+  }
+}