diff --git a/src/main/java/model/Box.java b/src/main/java/model/Box.java
new file mode 100644
index 0000000000000000000000000000000000000000..39d410416cac6b8269ca4d9c070dce4f8dcfeb26
--- /dev/null
+++ b/src/main/java/model/Box.java
@@ -0,0 +1,6 @@
+package model;
+
+public interface Box {
+
+
+}
diff --git a/src/main/java/model/Extinguisher.java b/src/main/java/model/Extinguisher.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e1592820d21b738ce84a9df80f95f5b30e1f51e
--- /dev/null
+++ b/src/main/java/model/Extinguisher.java
@@ -0,0 +1,43 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class Extinguisher {
+    private Position position;
+
+    public Extinguisher(Position position){
+        this.position = position;
+    }
+    public List<Position> neighbors(Position position, FirefighterBoard board){
+        List<Position> list = new ArrayList<>();
+        if (position.row() > 0) list.add(new Position(position.row() - 1, position.column()));
+        if (position.column() > 0) list.add(new Position(position.row(), position.column() - 1));
+        if (position.row() < board.rowCount() - 1) list.add(new Position(position.row() + 1, position.column()));
+        if (position.column() < board.columnCount() - 1) list.add(new Position(position.row(), position.column() + 1));
+        return list;
+    }
+
+    public Position position() {
+        return position;
+    }
+
+
+    void update(FirefighterBoard board){
+        move(board);
+        extinguish(board);
+    }
+
+    private void extinguish(FirefighterBoard board) {
+        List<Item> itemList = board.itemList();
+        List<Position> neighborslist = neighbors(position, board);
+        for (Position neighborsposition: neighborslist) {
+            itemList.removeIf(item -> neighborsposition == item.position() && item instanceof Fire);
+
+        }
+    }
+
+    abstract void move(FirefighterBoard board);
+}
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
new file mode 100644
index 0000000000000000000000000000000000000000..98512a2010975bb5049100c5d91fb06ee8e52d95
--- /dev/null
+++ b/src/main/java/model/Fire.java
@@ -0,0 +1,37 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Fire implements Item{
+
+    private Position position;
+
+    public Fire(Position position) {
+        this.position = position;
+    }
+
+    @Override
+    public void update(FirefighterBoard board) {
+        List<Position> neighborslist = neighbors(position, board);
+        for (Position neighborposition : neighborslist) {
+            board.itemList().add(new Fire(neighborposition));
+        }
+    }
+
+    public List<Position> neighbors(Position position, FirefighterBoard board){
+        List<Position> list = new ArrayList<>();
+        if (position.row() > 0) list.add(new Position(position.row() - 1, position.column()));
+        if (position.column() > 0) list.add(new Position(position.row(), position.column() - 1));
+        if (position.row() < board.rowCount() - 1) list.add(new Position(position.row() + 1, position.column()));
+        if (position.column() < board.columnCount() - 1) list.add(new Position(position.row(), position.column() + 1));
+        return list;
+    }
+
+    @Override
+    public Position position() {
+        return null;
+    }
+}
diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java
new file mode 100644
index 0000000000000000000000000000000000000000..3fa26bf07c679297159f973e032f013624e9d218
--- /dev/null
+++ b/src/main/java/model/Firefighter.java
@@ -0,0 +1,19 @@
+package model;
+
+import util.Position;
+
+public class Firefighter extends Extinguisher implements Item{
+    public Firefighter(Position position) {
+        super(position);
+    }
+
+    @Override
+    void move(FirefighterBoard board) {
+
+    }
+
+    @Override
+    public void update(FirefighterBoard board) {
+
+    }
+}
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 3251952ea90ec5ea59fc3a3630f3d2a4e4e96f01..b37bb43f82709ea572d88ff13f2d98de32b8e866 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -8,8 +8,11 @@ import java.util.*;
 public class FirefighterBoard implements Board<List<ModelElement>> {
   private final int columnCount;
   private final int rowCount;
+
   private final int initialFireCount;
   private final int initialFirefighterCount;
+  private List<Item> itemList;
+  private List<Box> boxList;
   private List<Position> firefighterPositions;
   private Set<Position> firePositions;
   private int step = 0;
@@ -79,9 +82,11 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   }
 
   @Override
-  public int stepNumber() {
-    return step;
-  }
+  public int stepNumber() { return step; }
+
+  public List<Item> itemList() { return itemList; }
+
+  public List<Box> boxList() { return boxList; }
 
   private List<Position> updateFirefighters() {
     List<Position> result = new ArrayList<>();
diff --git a/src/main/java/model/Item.java b/src/main/java/model/Item.java
new file mode 100644
index 0000000000000000000000000000000000000000..1593d5616586e6a5a0f232c722ddbdf3006f70bf
--- /dev/null
+++ b/src/main/java/model/Item.java
@@ -0,0 +1,14 @@
+package model;
+
+import util.Position;
+import java.util.ArrayList;
+import java.util.List;
+
+public interface Item {
+
+    void update(FirefighterBoard board);
+
+    List<Position> neighbors(Position position, FirefighterBoard board);
+
+    Position position();
+}
diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/Mountain.java
new file mode 100644
index 0000000000000000000000000000000000000000..2f288d3e9613124c2bc4ba3ded3c9b757dfbf1f3
--- /dev/null
+++ b/src/main/java/model/Mountain.java
@@ -0,0 +1,5 @@
+package model;
+
+public class Mountain implements Box{
+}
+
diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java
new file mode 100644
index 0000000000000000000000000000000000000000..3aec54fdffb58cc9b427c4dec5dd57e12f4c5a08
--- /dev/null
+++ b/src/main/java/model/Road.java
@@ -0,0 +1,4 @@
+package model;
+
+public class Road implements Box{
+}
diff --git a/src/main/java/model/Rockeries.java b/src/main/java/model/Rockeries.java
new file mode 100644
index 0000000000000000000000000000000000000000..18e1a9f2770d19ff3e543d1a8508d662d52f6d41
--- /dev/null
+++ b/src/main/java/model/Rockeries.java
@@ -0,0 +1,4 @@
+package model;
+
+public class Rockeries implements Box{
+}