diff --git a/overcooked_simulator/layouts/empty.layout b/overcooked_simulator/layouts/empty.layout
new file mode 100644
index 0000000000000000000000000000000000000000..9fb75b8d4f4c7faa7ba59d138746231ada07c7b0
--- /dev/null
+++ b/overcooked_simulator/layouts/empty.layout
@@ -0,0 +1 @@
+E
\ No newline at end of file
diff --git a/overcooked_simulator/main.py b/overcooked_simulator/main.py
index 975657704561d7ca1b5c2fd215f816571afd2b74..e7765a91eb06c3568131d6d6ceeee8d2699ce634 100644
--- a/overcooked_simulator/main.py
+++ b/overcooked_simulator/main.py
@@ -1,12 +1,13 @@
 from overcooked_simulator.player import Player
 import sys
-from overcooked_simulator.simulation_runner import Simulator
-from overcooked_simulator.overcooked_environment import Environment
+from pathlib import Path
+
+from overcooked_simulator.player import Player
 from overcooked_simulator.pygame_gui import PyGameGUI
 
 
 def main():
-    simulator = Simulator(Environment, 300)
+    simulator = Simulator(Path("overcooked_simulator/layouts/basic.layout"), 300)
     simulator.register_player(Player("p1", [100, 200]))
     simulator.register_player(Player("p2", [200, 100]))
 
diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py
index 4545c4f3c3157d71a2550445f9687439e70d23fe..8d64bbf76a128a8dfccd026d05cb3462d3110dfb 100644
--- a/overcooked_simulator/overcooked_environment.py
+++ b/overcooked_simulator/overcooked_environment.py
@@ -22,17 +22,18 @@ class Action:
 class Environment:
     """Environment class which handles the game logic for the overcooked-inspired environment.
 
-        Handles player movement, collision-detection, counters, cooking processes, recipes, incoming orders, time.
-        # TODO Abstract base class for different environments
-        """
-    def __init__(self):
-        self.players = {}
-        self.counter_side_length = 40
-        self.layout_path = Path("overcooked_simulator/layouts/basic.layout")
-        self.counters = self.create_counters(self.layout_path)
-        self.score = 0
-        self.world_width = 800
-        self.world_height = 600
+    Handles player movement, collision-detection, counters, cooking processes, recipes, incoming orders, time.
+    # TODO Abstract base class for different environments
+    """
+
+    def __init__(self, layout_path):
+        self.players: dict[str, Player] = {}
+        self.counter_side_length: float = 40
+        self.layout_path: Path = layout_path
+        self.counters: list[Counter] = self.create_counters(self.layout_path)
+        self.score: int = 0
+        self.world_width: int = 800
+        self.world_height: int = 600
 
     def create_counters(self, layout_file: Path):
         """Creates layout of kitchen counters in the environment based on layout file.
diff --git a/overcooked_simulator/simulation_runner.py b/overcooked_simulator/simulation_runner.py
index 461724c1ece3c45bb3c0bcb4fed163a94030507f..df168a27fa700896401c90596d3e9475b8ea96a4 100644
--- a/overcooked_simulator/simulation_runner.py
+++ b/overcooked_simulator/simulation_runner.py
@@ -17,13 +17,12 @@ class Simulator(Thread):
       sim.start()
     """
 
-    def __init__(self, env_class: type, frequency: int):
+    def __init__(self, env_layout_path, frequency: int):
         self.finished: bool = False
 
         self.step_frequency: int = frequency
         self.prefered_sleeptime_ns: float = 1e9 / self.step_frequency
-
-        self.env: Environment = env_class()
+        self.env: Environment = Environment(env_layout_path)
 
         super().__init__()
 
diff --git a/tests/test_start.py b/tests/test_start.py
index d37a7e87b9945ee6316df5399b8013fd93581454..5c465bd5588ac5349b082a42eec99baa9bf345d0 100644
--- a/tests/test_start.py
+++ b/tests/test_start.py
@@ -3,11 +3,15 @@ from overcooked_simulator.player import Player
 from overcooked_simulator.overcooked_environment import Environment, Action
 import numpy as np
 import time
+from pathlib import Path
+
+import numpy as np
+
 from overcooked_simulator.counters import Counter
 
 
 def test_player_registration():
-    sim = Simulator(Environment, 200)
+    sim = Simulator(Path("../overcooked_simulator/layouts/basic.layout"), 200)
     p1 = Player("player1", np.array([0, 0]))
     sim.register_player(p1)
 
@@ -38,7 +42,8 @@ def test_simulator_frequency():
     frequency = 2000
     running_time_seconds = 4
 
-    sim = Simulator(TestEnv, frequency)
+    sim = Simulator(Path("../overcooked_simulator/layouts/basic.layout"), frequency)
+    sim.env = TestEnv()  # Overwrite environment with a simple counting env
 
     sim.start()
     time.sleep(running_time_seconds)
@@ -52,7 +57,7 @@ def test_simulator_frequency():
 
 
 def test_collision_detection():
-    sim = Simulator(Environment, 200)
+    sim = Simulator(Path("../overcooked_simulator/layouts/empty.layout.layout"), 200)
     counter_pos = np.array([50, 100])
     counter = Counter(counter_pos)
     sim.env.counters = [counter]