diff --git a/src/main/java/model/update/NeighborManager.java b/src/main/java/model/update/NeighborManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..253304b89cbf3a2356b3d9a95acb9d96fa88448f
--- /dev/null
+++ b/src/main/java/model/update/NeighborManager.java
@@ -0,0 +1,28 @@
+package model.update;
+
+import util.Position;
+
+import java.util.HashMap;
+import java.util.*;
+
+public class NeighborManager {
+    private final Map<Position, List<Position>> neighbors = new HashMap<>();
+
+    public NeighborManager(int rowCount, int columnCount, Position[][] positions) {
+        for (int row = 0; row < rowCount; row++) {
+            for (int column = 0; column < columnCount; column++) {
+                List<Position> neighborList = new ArrayList<>();
+                if (row > 0) neighborList.add(positions[row - 1][column]);
+                if (column > 0) neighborList.add(positions[row][column - 1]);
+                if (row < rowCount - 1) neighborList.add(positions[row + 1][column]);
+                if (column < columnCount - 1) neighborList.add(positions[row][column + 1]);
+                neighbors.put(positions[row][column], neighborList);
+            }
+        }
+    }
+
+    public List<Position> getNeighbors(Position position) {
+        return neighbors.get(position);
+    }
+}
+