diff --git a/Matopeli/Matopeli/Matopeli.cs b/Matopeli/Matopeli/Matopeli.cs
index e06f8bd1c9a6c1f30dd439bcd63ae6acc5603e77..21c0181490d82ed0b6abde9ddc1a3f84f1ec426c 100644
--- a/Matopeli/Matopeli/Matopeli.cs
+++ b/Matopeli/Matopeli/Matopeli.cs
@@ -18,11 +18,11 @@ public class matopeli : PhysicsGame
 {
     private static readonly string[] tasonkuva = {
         "#####################",
+        "#o                  #",
         "#                   #",
         "#                   #",
         "#                   #",
         "#                   #",
-        "#           o       #",
         "#                   #",
         "#                   #",
         "#                   #",
@@ -39,6 +39,7 @@ public class matopeli : PhysicsGame
     private Objektit Mato;
     private Objektit Omena;
     private Objektit MatoMuu;
+    private Timer aikalaskuri;
     
     public List<Vector> MatoSijainti = new List<Vector>();
     public List<PhysicsObject> MatoKeho = new List<PhysicsObject>();
@@ -59,6 +60,8 @@ public class matopeli : PhysicsGame
 
     private bool MatoLiikkunut = true;
 
+    private bool GameOver = false;
+
     private bool OmenaKentalla = true;
     public override void Begin()
     {
@@ -90,13 +93,22 @@ public class matopeli : PhysicsGame
         Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left");
         Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right");
     }
+
+    private void MatoKuolee()
+    {
+        GameOver = true;
+    }
     private PhysicsObject LuoMato()
     {
         Mato = new Objektit(leveys, korkeus);
         Mato.Image = matopaakuva;
         Add(Mato);
         Mato.Tag = "mato";
+        
         AddCollisionHandler(Mato, "omena", delegate(IPhysicsObject Mato, IPhysicsObject Omena) {MatoSyoOmenan();  });
+        AddCollisionHandler(Mato, "seina", delegate(IPhysicsObject Mato, IPhysicsObject seina) {MatoKuolee();  });
+        AddCollisionHandler(Mato, "matokeho", delegate(IPhysicsObject Mato, IPhysicsObject matokeho) {MatoKuolee();  });
+        
         return Mato;
     }
 
@@ -148,7 +160,7 @@ public class matopeli : PhysicsGame
     }
     private PhysicsObject LuoSeina()
     {
-        PhysicsObject Seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
+        PhysicsObject Seina = new PhysicsObject(leveys, korkeus);
         Seina.Color = Color.Green;
         Seina.Image = seinakuva;
         Seina.Tag = "seina";
@@ -258,33 +270,51 @@ public class matopeli : PhysicsGame
         {
             Timer aikalaskuri = new Timer();
             aikalaskuri.Interval = 0.1;
-            aikalaskuri.Timeout += PaivitaKentta;
             aikalaskuri.Start();
+            aikalaskuri.Timeout += PaivitaKentta;
         }
 
      /// <summary>
      /// Kun ajastimesta loppuu aika, siirtyy peli tähän funktioon, jonka tarkoituksena on hahmottaa, mitä kaikkea pelissä on tapahtunut ja miten siihen tulee reagoida.
-     /// 
+     ///
+     /// GameOver tarkistaa, että onko mato kuollut
      /// </summary>
      private void PaivitaKentta()
      {
+         
+         if (GameOver == true)
+         {
+             PaataPeli();
+         }
+         
          if (MatoLiikkunut == false)
          {
              return;
          }
+         
          if (OmenaKentalla == false)
          {
              LuoMatoKeho();
              LuoOmena();
          }
 
-         MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
-         LiikutaMatoa();
-         LiikutaKehoa();
-         MatoSijainti.Add(new Vector(Mato.X,Mato.Y));    
+         if (GameOver == false)
+         {
+             MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
+             LiikutaMatoa();
+             LiikutaKehoa();
+             MatoSijainti.Add(new Vector(Mato.X,Mato.Y));  
+         }
 
      }
-
+    /// <summary>
+    /// tehdään ohjelma, joka päättää pelin.
+    /// </summary>
+     private void PaataPeli()
+     {
+         
+     }
+     
     private void LiikutaMatoa()
     {
         MatoLiikkunut = false;
@@ -343,7 +373,7 @@ public class matopeli : PhysicsGame
          public Objektit(double leveys, double korkeus)
         : base(leveys, korkeus)
         {
-            Mass = 0;
+            Mass = 1000;
             IsUpdated = true;
         }
     }