diff --git a/src/Main.hs b/src/Main.hs
index 1885e1feaad1ea53d7833beff2f4ad8a0ccd014c..67883991847d44bf62c158604cf2c45f108a8596 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -21,6 +21,15 @@ alkutilanne =
     [Hemmo (400, 100), Hemmo (600, 100)]
     )
 
+alkuKopteri :: Kopteri
+alkuKopteri = Kopteri 
+              (10, 0) -- paikka
+              0
+              (0,0)  -- vauhti
+              0
+              0
+              0 -- hemmoja
+
 -- main :: IO ()
 -- main = animate 
 --          (InWindow "Choplifter" (400,400) (200,200))
@@ -69,6 +78,16 @@ onkoHyväLaskeutuminen nopeus kulma
   | magV nopeus < 250 && abs kulma <= 13  = True -- magV laskee vektoreista niiden kokonaismitan (kuinka pitkä vektori)
   | otherwise = False
 
+cl_paikka :: Choplifter -> Point
+cl_paikka peli = kop_paikka . cl_kopteri
+cl_nopeus peli = kop_nopeus . cl_kopteri
+cl_paikka :: Choplifter -> Point
+cl_paikka peli = kop_paikka . cl_kopteri
+cl_kulma, cl_teho :: Choplifter -> Float
+cl_kulma peli = kop_kulma . cl_kopteri
+cl_teho peli = kop_teho . cl_kopteri
+
+
 päivitäPeliTilanne :: Float -> PeliTilanne -> PeliTilanne
 päivitäPeliTilanne aikaedellisestä pelitilanne =
   case pelitilanne of
@@ -79,7 +98,11 @@ päivitäPeliTilanne aikaedellisestä pelitilanne =
                     Just Laskuteline
                           | onkoHyväLaskeutuminen (cl_nopeus cl) (cl_kulma cl)
                             -> GameOn (päivitäPeliä aikaedellisestä
-                                        cl{cl_kulma = 0
+                                        cl{cl_kopteri = cl_kopteri cl{kop_kulma=0}
+                                        ,cl_kopteri = cl_kopteri cl {kop_nopeus =
+                                                                      pysäytäPystyssä
+                                                                        (cl_nopeus cl)}})
+                                          cl_kulma = 0
                                       ,cl_nopeus = pysäytäPystyssä (cl_nopeus cl)})  -- päivitetään samalla pysähdyksiin kopteri
                           | otherwise -> GameOver cl
 
@@ -248,18 +271,20 @@ data Choplifter  -- modelin tilalle tehdäänkin tämä  -- tehdään tietotyypp
   = Peli
   { -- annetaan nyt tämän (record tyyppisen) tietueen kentille oikeat nimet! Ei tarvitse paukutella auki case lauseissa koko ajan!
        cl_aika :: Float -- Aika pelin alusta
-
-      ,cl_paikka :: (Float, Float) -- Missä kopteri (kopteriX, kopteriY)
-      ,cl_teho :: Float   -- Teho
-      ,cl_nopeus :: (Float, Float) -- nopeus vektorina (suuntaX, suuntaY)
-      ,cl_kulma :: Float  -- Kulma eli kuinka vinossa
-      ,cl_kiihtyvyysKerroin :: Float
-      ,cl_hemmojaKyydissä :: Natural
-
+      ,cl_kopteri :: Kopteri
       ,cl_talot :: [Talo]
       ,cl_hemmot :: [Hemmo]
   } -- Annettiin cl_nimet koska muuten voisi tulla inhimillisiä virheitä helpommin
 
+data Kopteri = Kopteri {
+   kop_paikka :: (Float, Float) -- Missä kopteri (kopteriX, kopteriY)
+  ,kop_teho :: Float   -- Teho
+  ,kop_nopeus :: (Float, Float) -- nopeus vektorina (suuntaX, suuntaY)
+  ,kop_kulma :: Float  -- Kulma eli kuinka vinossa
+  ,kop_kiihtyvyysKerroin :: Float
+  ,kop_hemmojaKyydissä :: Natural
+}
+
 korkeusKohdassa :: Float -> Choplifter -> Float  -- korkeuskoordinaatti eka arg
 korkeusKohdassa kohta peli = maybe 0 maximum1 . nonEmpty . map osuukoTaloon . cl_talot $ peli
 -- selkeämpi kylläkin tehdä näin: maybe 0 maximum1 (nonEmpty (map osuukoTaloon (cl_talot peli)))