diff --git a/Escape/Escape/Escape.cs b/Escape/Escape/Escape.cs
index 398b1aa6b012616099b9bf2c4e0bedd66be97f21..f6f8f1d7e4c58f90b72fd7dca8ca7f985d9d938b 100644
--- a/Escape/Escape/Escape.cs
+++ b/Escape/Escape/Escape.cs
@@ -8,7 +8,7 @@ using Jypeli.Widgets;
 namespace Escape;
 
 /// @author annilehtinen
-/// @version 28.03.2025 / 2
+/// @version 29.03.2025
 /// <summary>
 /// Peli, jossa pelaajaan tavoitteena on vältellä vastustajaa (Barkov) ja kerätä kiekkoja saadakseen pisteitä.
 /// </summary>
@@ -16,67 +16,109 @@ public class Escape : PhysicsGame
 {
     public override void Begin()
     {
-        Surfaces borders = Level.CreateBorders(0.5, true, Color.White);
         Camera.ZoomToLevel();
+        CreateLevel();
         
-        PhysicsObject player = new PhysicsObject(40, 40);
-        player.Image = LoadImage("player.png");
-        player.CanRotate = false;
-        player.LinearDamping = 0.95;
-        
-        this.Add(player);
-        
-        SetControls();
-        
+        PhysicsObject player = AddPlayer(this);
+        SetControls(player);
+
         PhysicsObject barkov = new PhysicsObject(50, 50);
         barkov.Image = LoadImage("Barkov.png");
         barkov.X = 60;
         barkov.Y = -60;
         this.Add(barkov);
 
-        SpawnPuck();
-        Timer.CreateAndStart(4.0, SpawnPuck);
+        Timer.CreateAndStart(4.0, SpawnPucks);
+    }
+    
+    
+    /// <summary>
+    /// Peliohjainten asettaminen pelaajalle
+    /// </summary>
+    void SetControls(PhysicsObject player)
+    {
+        Keyboard.Listen(Key.Up, ButtonState.Down, MovePlayer, "Liikuta pelaajaa eteenpäin", player);
+        Keyboard.Listen(Key.Left, ButtonState.Down, TurnPlayer, "Käännä pelaajaa vasemmalle", player, 2.0);
+        Keyboard.Listen(Key.Left, ButtonState.Released, TurnPlayer, null, player, 0.0);
+        Keyboard.Listen(Key.Right, ButtonState.Down, TurnPlayer, "Käännä pelaajaa oikealle", player,-2.0);
+        Keyboard.Listen(Key.Right, ButtonState.Released, TurnPlayer, null, player,0.0);
         
-        /// <summary>
-        /// Peliohjainten asettaminen
-        /// </summary>
-        void SetControls()
-        {
-            Keyboard.Listen(Key.Up, ButtonState.Down, MovePlayer, "Liikuta pelaajaa eteenpäin");
-            Keyboard.Listen(Key.Left, ButtonState.Down, TurnPlayer, "Käännä pelaajaa vasemmalle", 2.0);
-            Keyboard.Listen(Key.Left, ButtonState.Released, TurnPlayer, null, 0.0);
-            Keyboard.Listen(Key.Right, ButtonState.Down, TurnPlayer, "Käännä pelaajaa oikealle", -2.0);
-            Keyboard.Listen(Key.Right, ButtonState.Released, TurnPlayer, null, 0.0);
+        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
+    } 
+    
+    
+    /// <summary>
+    /// Lisää pelaajan hahmon pelikentälle ja määrittää sen ominaisuudet
+    /// </summary>
+    /// <param name="game">Peli, johon hahmo lisätään</param>
+    /// <returns>Pelaaja</returns>
+    static PhysicsObject AddPlayer(PhysicsGame game)
+    {
+        PhysicsObject player = new PhysicsObject(40, 40);
+        player.Image = LoadImage("player.png");
+        player.CanRotate = false;
+        player.LinearDamping = 0.95;
         
-            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
-        }
-       
-        /// <summary>
-        /// Pelaajan liikuttaminen eteenpäin (myöhemmin animaation kanssa)
-        /// </summary>
-        void MovePlayer()
-        {
-            int playerSpeed = 10;
-            Vector playerDirection = Vector.FromLengthAndAngle(50.0, player.Angle);
-            player.Push(playerDirection * playerSpeed);
-        }
+        game.Add(player);
+        return player;
+    } 
+    
+    
+    /// <summary>
+    /// Pelaajan liikuttaminen eteenpäin (myöhemmin animaation kanssa)
+    /// </summary>
+    void MovePlayer(PhysicsObject player)
+    {
+        int playerSpeed = 10;
+        Vector playerDirection = Vector.FromLengthAndAngle(50.0, player.Angle);
+        player.Push(playerDirection * playerSpeed);
+    } 
+    
+    
+    /// <summary>
+    /// Pelaajan kääntäminen nuolinäppäinten avulla
+    /// </summary>
+    /// <param name="player">Pelaaja, jonka hahmoa käännetään</param>
+    /// <param name="angle">Kulma, jossa hahmoa käännetään</param>
+    void TurnPlayer(PhysicsObject player, double angle)
+    {
+        player.Angle += Angle.FromDegrees(angle);
+    } 
+    
+    
+    /// <summary>
+    /// Kiekon lisääminen kentälle satunnaiseen kohtaan
+    /// </summary>
+    /// <param name="amount">Kuinka monta kiekkoa luodaan kentälle</param>
+    /// <param name="lifetime">Aika, jonka kiekko on kentällä ennen kuin se katoaa</param>
+    void SpawnPucks(int amount, double lifetime)
+    {
+        GameObject puck = new GameObject(18, 18);
+        puck.Shape = Shape.Circle;
+        puck.Color = Color.Black;
+        puck.LifetimeLeft = TimeSpan.FromSeconds(lifetime);
+        puck.Position = Level.GetRandomPosition();
         
-        /// <summary>
-        /// Pelaajan kääntäminen nuolinäppäinten avulla
-        /// </summary>
-        void TurnPlayer(double angle)
-        {
-            player.Angle += Angle.FromDegrees(angle);
-        }
-
-        void SpawnPuck()
-        {
-            GameObject puck = new GameObject(18, 18);
-            puck.Shape = Shape.Circle;
-            puck.Color = Color.Black;
-            puck.LifetimeLeft = TimeSpan.FromSeconds(5.0);
-            puck.Position = Level.GetRandomPosition();
-            this.Add(puck);
-        }
+        for (int i = 1; i <= amount; i++) this.Add(puck);
+    } 
+    
+    
+    /// <summary>
+    /// Yhden kiekon lisääminen kentälle satunnaiseen kohtaan viiden sekunnin ajaksi,
+    /// jos kutsussa ei anneta parametrinä määrää ja aikaa erikseen
+    /// </summary>
+    void SpawnPucks()
+    {
+        SpawnPucks(1, 5.0);
+    } 
+    
+    
+    /// <summary>
+    /// Lisätään kentälle haluttu määrä kiekkoja (pelin alkaessa)
+    /// </summary>
+    void CreateLevel() //TODO: Kiekkojen lisääminen ei toimi
+    {
+        Surfaces borders = Level.CreateBorders(0.5, true, Color.White);
+        SpawnPucks(5, 10.0);
     }
 }
\ No newline at end of file