diff --git a/src/main/java/model/FirefighterFactory.java b/src/main/java/model/FirefighterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..acb12afa7950578b0bcfa6c4714edce39d83d86f
--- /dev/null
+++ b/src/main/java/model/FirefighterFactory.java
@@ -0,0 +1,38 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class FirefighterFactory implements ElementFactory<FireFighter>, PositionGenerator{
+    private final Random random;
+    private int count;
+
+    public FirefighterFactory(Random random,int count) {
+        this.random = random;
+        this.count=count;
+    }
+
+    @Override
+    public List<FireFighter> createElements(int rowCount, int columnCount) {
+        List<FireFighter> firefighters = new ArrayList<>();
+        for (int i = 0; i < count; i++) {
+            Position randomPosition = generateRandomPosition(rowCount, columnCount);
+            firefighters.add(new FireFighter(randomPosition));
+        }
+        return firefighters;
+    }
+
+    @Override
+    public Position generateRandomPosition(int rowCount, int columnCount) {
+        int row = random.nextInt(rowCount);
+        int column = random.nextInt(columnCount);
+        return new Position(row, column);
+    }
+
+    public int getCount() {
+        return count;
+    }
+}