diff --git a/overcooked_simulator/main.py b/overcooked_simulator/main.py
index 3029f1933fd3210a1c7156a845f4038b9e3f0b74..b783eaa3594e673246a5f9890e4a926386ceb679 100644
--- a/overcooked_simulator/main.py
+++ b/overcooked_simulator/main.py
@@ -1,10 +1,10 @@
 from player import Player
 import sys
 from simulation_runner import Simulator
-
+from overcooked_environment import Environment
 
 def main():
-    simulator = Simulator()
+    simulator = Simulator(Environment, 300)
 
     simulator.register_player(Player("p1", [100, 200]))
     simulator.register_player(Player("p2", [200, 100]))
diff --git a/overcooked_simulator/simulation_runner.py b/overcooked_simulator/simulation_runner.py
index f2bef1421f17ebfbf6e025c8c4d6d925c85e4751..1808898d1e0b887924096b1f5b627c031e11b9a8 100644
--- a/overcooked_simulator/simulation_runner.py
+++ b/overcooked_simulator/simulation_runner.py
@@ -17,13 +17,13 @@ class Simulator(Thread):
       sim.start()
     """
 
-    def __init__(self):
+    def __init__(self, env_class: type, frequency: int):
         self.finished: bool = False
 
-        self.step_frequency: float = 300
+        self.step_frequency: int = frequency
         self.prefered_sleeptime_ns: float = 1e9 / self.step_frequency
 
-        self.env: Environment = Environment()
+        self.env = env_class()
 
         super().__init__()
 
@@ -59,6 +59,7 @@ class Simulator(Thread):
         return self.env.get_state_json()
 
     def register_player(self, player: Player):
+        print(f"Added player {player.name} to the game.")
         """Adds a player to the environment.
 
             Args:
@@ -98,4 +99,5 @@ class Simulator(Thread):
     def stop(self):
         """Stops the simulator
         """
+        print("Stopping the simulation.")
         self.finished = True
diff --git a/tests/test_start.py b/tests/test_start.py
index 79a1690cb65367c93a046b843ed78d6f331a6db5..89211c89d91497d8b6fd78a0a62a33fc3060e1ea 100644
--- a/tests/test_start.py
+++ b/tests/test_start.py
@@ -1,6 +1,45 @@
+from overcooked_simulator.simulation_runner import Simulator
+from overcooked_simulator.player import Player
+from overcooked_simulator.overcooked_environment import Environment, Action
+import numpy as np
+import time
 
-def test_dummy():
-    assert "overcooked".startswith("over"), "overcooked does not start with 'over'"
+def test_player_registration():
 
-def test_failure():
-    assert False, "What does happen now?"
+    sim = Simulator()
+    p1 = Player("player", np.array([0, 0]))
+    sim.register_player(p1)
+
+    assert len(sim.env.players) != 0
+    assert len(sim.env.players) == 1
+
+    p2 = Player("player", np.array([100, 100]))
+    sim.register_player(p2)
+
+    assert len(sim.env.players) == 2
+
+    sim.start()
+    sim.stop()
+
+def test_simulator_frequency():
+    class TestEnv:
+        def __init__(self):
+            self.c = 0
+
+        def step(self):
+            self.c += 1
+
+    frequency = 1000
+    running_time_seconds = 5
+
+    sim = Simulator(TestEnv, frequency)
+    sim.start()
+
+    time.sleep(running_time_seconds)
+
+    sim.stop()
+
+    accepted_tolerance = 0.04
+    lower = frequency * running_time_seconds * (1-accepted_tolerance)
+    upper = frequency * running_time_seconds * (1+accepted_tolerance)
+    assert sim.env.c > lower and sim.env.c < upper, "Timing error in the environment at 1000hz"