diff --git a/Financial_Freedom/Financial_Freedom/Content/slotBG.png b/Financial_Freedom/Financial_Freedom/Content/slotBG.png
new file mode 100644
index 0000000000000000000000000000000000000000..830606de2e4efd4d67770a8bea7787233547cc46
Binary files /dev/null and b/Financial_Freedom/Financial_Freedom/Content/slotBG.png differ
diff --git a/Financial_Freedom/Financial_Freedom/Content/tyhjatausta.png b/Financial_Freedom/Financial_Freedom/Content/tyhjatausta.png
new file mode 100644
index 0000000000000000000000000000000000000000..280534f0a2659de0aa4f48669376bbe67f7900e2
Binary files /dev/null and b/Financial_Freedom/Financial_Freedom/Content/tyhjatausta.png differ
diff --git a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
index eac9292abf30eed5c862b439c35cc08c906c33d2..e9a9194984a3ae520c7eb8d54364a1e871277f55 100644
--- a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
+++ b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
@@ -107,6 +107,25 @@ public class RouletteBet
     }
 }
 
+public class RBetAmounts
+{
+    // Esim. betType voi olla numero ("36") tai sana ("Red")
+    public string BetType { get; set; }  
+    // Panostettu rahamäärä
+    public double Amount { get; set; }
+
+    public RBetAmounts(string betType, double amount)
+    {
+        BetType = betType;
+        Amount = amount;
+    }
+
+    public override string ToString()
+    {
+        return $"{BetType}: {Amount}";
+    }
+}
+
 
 public class  Financial_Freedom : PhysicsGame
 //alustellaan muuttujat
@@ -115,8 +134,10 @@ public class  Financial_Freedom : PhysicsGame
     private double tsplinko = (1); //suurinpiirtein takaisinsaantikerroin plinkoalustoissa 0.85 kontrollikerroin
     DoubleMeter pistelaskuri; //heitäppä villi veikkaus mikä tämä voisi olla
     private Label panosLabel; // Label, joka näyttää panoksen no shit
+    private Label titleLabel; //panoksen titlelabel
     private double panos; // Alkustus panokselle
     private TaskCompletionSource<bool> panosAsetettu;
+    private bool removePanosLabelAfterPanos; // Tämä kenttä tallentaa, poistetaanko labelit
     private Label pistenaytto;
     private GameObject coinObject;
     private TaskCompletionSource<bool> animaatioValmis;
@@ -127,6 +148,7 @@ public class  Financial_Freedom : PhysicsGame
     private List<string> clickLog = new List<string>(); //ruletin panostuksen clikkailulogi
     private GameObject doneButton = null;
     private double realangle;
+    private List<RBetAmounts> bets = new List<RBetAmounts>();
     
     private int peliKesken = 0;
     
@@ -169,9 +191,9 @@ public class  Financial_Freedom : PhysicsGame
     // Värit: Vihreät 0 ja 00, muut ovat virallisesti määrättyjä.
     // Muut värit on asetettu siten, että annettu järjestys vastaa virallista ruletin väriä.
     string[] colors = new string[] {
-        "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Green",    
-        "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Green",    
-        "Red", "Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red"
+        "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Vihreä",    
+        "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Vihreä",    
+        "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen", "Musta", "Punainen"
     };
 
     double[] anglet = new double[] {
@@ -384,6 +406,63 @@ public class  Financial_Freedom : PhysicsGame
         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
     }
     
+    /// <summary>
+    /// luo suorakulmion annettun kokoon ja paikkaan
+    /// </summary>
+    /// <param name="peli"></param>
+    /// <param name="width">logon leveys</param>
+    /// <param name="height">logon korkeus</param>
+    /// <param name="x">logon paikka</param>
+    /// <param name="y">logon paikka</param>
+    public void MiniPeliLogo(Game peli, double width, double height, double x, double y, string kuva, int order)
+    {
+        PhysicsObject p = new PhysicsObject(width, height, Shape.Rectangle, x, y)
+        {
+            Position = new Vector(x, y),
+            Image = LoadImage(kuva),
+            Tag = order // Käytetään tagia tunnistamiseen
+        };
+        p.Image = LoadImage(kuva); 
+        Label iconLab = new Label(kuva+$" ({order})")
+        {
+            Color = Color.White,
+            Position = new Vector(x, y-90), // Asetetaan sijainti
+        };
+        
+        // Klikkaustoiminto: Kun objektia klikataan, siirrytään peliin
+        Mouse.ListenOn(p, MouseButton.Left, ButtonState.Pressed, () => ValitsePeli(order), "Siirry peliin");
+
+        
+        peli.Add(p);
+        peli.Add(iconLab);
+        
+    }
+    
+    public async void ValitsePeli(int order)
+    {
+        switch (order)
+        {
+            case 1:
+                await Plinko();
+                break;
+            case 2:
+                await BlackJack();
+                break;
+            case 3:
+                await Ruletti();
+                break;
+            case 4:
+                await Slots();
+                break;
+            case 5:
+                await Coinflip();
+                break;
+            default:
+                MessageDisplay.Add("Tuntematon peli!");
+                break;
+        }
+    }
+    
     
     /// <summary>
     /// Blackjack peli, panosken asetus, peli ja tulosten lasku
@@ -397,7 +476,7 @@ public class  Financial_Freedom : PhysicsGame
         ClearControls();
         Remove(pistenaytto);
         Add(pistenaytto);
-        await LisaaPanos();  // Odotetaan, kunnes panos on asetettu
+        await LisaaPanos(false);  // Odotetaan, kunnes panos on asetettu
 
         panosAsetettu.TrySetResult(true);  // Varmistetaan, että odotus päättyy 
         TakaisinPV();
@@ -406,10 +485,11 @@ public class  Financial_Freedom : PhysicsGame
         EnsimmäinenBJ();
     }
     
-    public async Task LisaaPanos()
+    public async Task LisaaPanos(bool removeLabels)
     {
+        removePanosLabelAfterPanos = removeLabels;
         // Ylhäällä keskellä oleva teksti "Aseta panos"
-        Label titleLabel = new Label("Aseta panos")
+        titleLabel = new Label("Aseta panos")
         {
             Color = Color.White,
             Position = new Vector(0, 200), // Asetetaan sijainti
@@ -428,10 +508,65 @@ public class  Financial_Freedom : PhysicsGame
         kysymysIkkuna.TextEntered += ProcessInput;
         Add( kysymysIkkuna );
         await panosAsetettu.Task;
+        if (removePanosLabelAfterPanos == true) {Remove(panosLabel); }
         Remove(titleLabel);
+        Console.WriteLine("lisaapanos = loppu");
     }
 
-
+     public async Task VaihdaPanos() // hmmmmmm voisiko ehkä vaihtaa panosta
+    { //esim plinkossa voi vaihtaa panosta lennosta
+        InputWindow kysymysIkkuna = new InputWindow("Aseta Panos" );
+        kysymysIkkuna.TextEntered += ProcessInput;
+        Add( kysymysIkkuna );
+    }
+    
+    void ProcessInput( InputWindow ikkuna ) // prosessoi inputin kun panos on asetettu
+    {
+        string vastaus = ikkuna.InputBox.Text;
+        if (double.TryParse(vastaus, out panos) && panos > 0 && panos <= pistelaskuri.Value)
+        {
+            panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
+            
+            MessageDisplay.Add("Panos hyväksytty: " + panos);
+            
+            panosAsetettu.TrySetResult(true);
+            // Lisää logiikka panoksen käyttämiseksi pelissä
+        }
+        else if (vastaus == "max" || vastaus == "m" || vastaus == "a" || vastaus == "allin" || vastaus == "all in" || vastaus == "all" || vastaus == "kaikki" || vastaus == "inshallah" || vastaus == "0" && panos > 0 && panos < pistelaskuri.Value) //AllIn
+        {
+            panos = pistelaskuri.Value; 
+            
+            panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
+                   
+            MessageDisplay.Add("Panos hyväksytty: " + panos);
+            
+            panosAsetettu.TrySetResult(true);
+            // Lisää logiikka panoksen käyttämiseksi pelissä   
+        }
+        else if (vastaus == "half" || vastaus == "h" || vastaus == "puolet" || vastaus == "p" || vastaus == "1/2" || vastaus == "^" && panos > 0 && panos < pistelaskuri.Value) //puolet inee
+        {
+                panos = pistelaskuri.Value/2; 
+            
+                panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
+                   
+                MessageDisplay.Add("Panos hyväksytty: " + panos);
+            
+                panosAsetettu.TrySetResult(true);
+                // Lisää logiikka panoksen käyttämiseksi pelissä  
+        }
+        else
+        {
+            MessageDisplay.Add("Virheellinen panos. Aseta panos johon sinulla on varaa ja joka on positiivinen luku.");
+            Remove(ikkuna);
+            Remove(titleLabel);
+            Remove(panosLabel);
+            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await VaihdaPanos(), "vaihtaa panoksen");
+            TakaisinPV();
+            
+        }
+    }
+    
+    
     public async Task EnsimmäinenBJ()
     {
         ClearGameObjects();
@@ -1199,52 +1334,6 @@ public class  Financial_Freedom : PhysicsGame
         return jaetutKortit;
     }
     
-    public async Task VaihdaPanos() // hmmmmmm voisiko ehkä vaihtaa panosta
-    { //esim plinkossa voi vaihtaa panosta lennosta
-        InputWindow kysymysIkkuna = new InputWindow("Aseta Panos" );
-        kysymysIkkuna.TextEntered += ProcessInput;
-        Add( kysymysIkkuna );
-    }
-    
-    void ProcessInput( InputWindow ikkuna ) // prosessoi inputin kun panos on asetettu
-    {
-        string vastaus = ikkuna.InputBox.Text;
-        if (double.TryParse(vastaus, out panos) && panos > 0 && panos <= pistelaskuri.Value)
-        {
-            panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
-            
-            MessageDisplay.Add("Panos hyväksytty: " + panos);
-            panosAsetettu.TrySetResult(true);
-            // Lisää logiikka panoksen käyttämiseksi pelissä
-        }
-        else if (vastaus == "max" || vastaus == "m" || vastaus == "a" || vastaus == "allin" || vastaus == "all in" || vastaus == "all" || vastaus == "kaikki" || vastaus == "inshallah" || vastaus == "0" && panos > 0 && panos < pistelaskuri.Value) //AllIn
-        {
-            panos = pistelaskuri.Value; 
-            
-            panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
-                   
-            MessageDisplay.Add("Panos hyväksytty: " + panos);
-            panosAsetettu.TrySetResult(true);
-            // Lisää logiikka panoksen käyttämiseksi pelissä   
-        }
-        else if (vastaus == "half" || vastaus == "h" || vastaus == "puolet" || vastaus == "p" || vastaus == "1/2" || vastaus == "^" && panos > 0 && panos < pistelaskuri.Value) //puolet inee
-        {
-                panos = pistelaskuri.Value/2; 
-            
-                panosLabel.Text = "Panos: " + Math.Round(panos, 2); // Update the display label
-                   
-                MessageDisplay.Add("Panos hyväksytty: " + panos);
-                panosAsetettu.TrySetResult(true);
-                // Lisää logiikka panoksen käyttämiseksi pelissä  
-        }
-        else
-        {
-            MessageDisplay.Add("Virheellinen panos. Aseta panos johon sinulla on varaa ja joka on positiivinen luku.");
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await VaihdaPanos(), "vaihtaa panoksen");
-            TakaisinPV();
-
-        }
-    }
 
     
     /// <summary>
@@ -1256,7 +1345,7 @@ public class  Financial_Freedom : PhysicsGame
         ClearControls();
         ClearGameObjects();
         Add(pistenaytto);
-        await LisaaPanos();  // Odotetaan, kunnes panos on asetettu
+        await LisaaPanos(false);  // Odotetaan, kunnes panos on asetettu
         panosAsetettu.TrySetResult(true);  // Varmistetaan, että odotus päättyy
         panosLabel.Position = new Vector(0, Level.Top - 60);
         panosLabel.TextScale = new Vector(2,2);
@@ -1264,6 +1353,7 @@ public class  Financial_Freedom : PhysicsGame
         panosLabel.Color = Color.Transparent;
         
         
+        
         Level.Background.Image = taustakuvaPlinko;
         
 
@@ -1409,6 +1499,7 @@ public class  Financial_Freedom : PhysicsGame
     public async Task Ruletti()
     {
         panosAsetettu = new TaskCompletionSource<bool>(false);
+        bets = new List<RBetAmounts>();
         
         ClearGameObjects();
         ClearControls();
@@ -1416,8 +1507,6 @@ public class  Financial_Freedom : PhysicsGame
         Level.Background.Width = Screen.Width;
         Level.Background.Height = Screen.Height;
         Add(pistenaytto);
-        await LisaaPanos();
-        panosAsetettu.TrySetResult(true);
 
         await LuoPanostusAlue();
         
@@ -1440,12 +1529,12 @@ public class  Financial_Freedom : PhysicsGame
         ClearControls();
         Add(pistenaytto);
         
-        Label ohjeet = new Label(1100, 35, "Klikkaa mihin haluat asettaa panoksesi. Jos klikkaat montaa kohtaa niin panos jaetaan niiden välille tasan.");
+        /*Label ohjeet = new Label(1100, 35, "Klikkaa mihin haluat asettaa panoksesi. Jos klikkaat montaa kohtaa niin panos jaetaan niiden välille tasan.");
         ohjeet.Color = Color.SkyBlue;
         ohjeet.TextColor = Color.Black;
         ohjeet.Position = new Vector(Screen.Right-575, Screen.Top-25);
         Add(ohjeet);
-        
+        */
         
         
         // Tausta panostusalueelle
@@ -1473,7 +1562,7 @@ public class  Financial_Freedom : PhysicsGame
         
         for (int i = 0; i < totalButtons; i++)
         {
-            int currentNumber = i+1; // pitää skipata 0 toistaiseksi, niille myöhemmin omat napit
+            int currentNumber = i+1; 
             int row = i / buttonsPerRow;
             int col = i % buttonsPerRow;
             
@@ -1517,13 +1606,18 @@ public class  Financial_Freedom : PhysicsGame
             numeroPanos.Add(numeroLabel);
             
             // Rekisteröidään napin hiiriklikkaus käyttäen paikallista muuttujaa
-            Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+            Mouse.Listen(MouseButton.Left, ButtonState.Pressed, async () =>
             {
                 if (numeroPanos.IsInside(Mouse.PositionOnScreen))
                 {
+                    panosAsetettu = new TaskCompletionSource<bool>(false);
                     // Tallennetaan vain numero välimuistiin
                     clickLog.Add(numeroPanos.Tag.ToString());
-                    AsetaPanos((int)numeroPanos.Tag);
+                    await LisaaPanos(true);
+                    panosAsetettu.TrySetResult(true);
+                    double currentbet = panos;
+                    pistelaskuri.Value -= currentbet;
+                    AsetaPanos(numeroPanos.ToString(), currentbet);
                     if (doneButton == null)
                     {
                         CreateDoneButton();
@@ -1544,13 +1638,18 @@ public class  Financial_Freedom : PhysicsGame
         gOLabel.Position = new Vector(startX+52, startY+60);
         gOPanos.Add(gOLabel);
         
-        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, async () =>
         {
             if (gOPanos.IsInside(Mouse.PositionOnScreen))
             {
+                panosAsetettu = new TaskCompletionSource<bool>(false);
                 // Tallennetaan nolla välimuistiin
                 clickLog.Add("0");
-                AsetaPanosNollat("0");
+                await LisaaPanos(true);
+                panosAsetettu.TrySetResult(true);
+                double currentbet = panos;
+                pistelaskuri.Value -= currentbet;
+                AsetaPanosNollat("0", currentbet);
                 if (doneButton == null)
                 {
                     CreateDoneButton();
@@ -1570,13 +1669,18 @@ public class  Financial_Freedom : PhysicsGame
         gO0Label.Position = new Vector(startX+220, startY+60);
         gO0Panos.Add(gO0Label);
         
-        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, async () =>
         {
             if (gO0Panos.IsInside(Mouse.PositionOnScreen))
             {
+                panosAsetettu = new TaskCompletionSource<bool>(false);
                 // Tallennetaan tuplanolla välimuistiin
                 clickLog.Add("00");
-                AsetaPanosNollat("00");
+                await LisaaPanos(true);
+                panosAsetettu.TrySetResult(true);
+                double currentbet = panos;
+                pistelaskuri.Value -= currentbet;
+                AsetaPanosNollat("00", currentbet);
                 if (doneButton == null)
                 {
                     CreateDoneButton();
@@ -1596,13 +1700,18 @@ public class  Financial_Freedom : PhysicsGame
         punainenLabel.Position = new Vector(startX+52, startY+125);
         punainenPanos.Add(punainenLabel);
         
-        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, async () =>
         {
             if (punainenPanos.IsInside(Mouse.PositionOnScreen))
             {
+                panosAsetettu = new TaskCompletionSource<bool>(false);
                 // Tallennetaan värin nimi välimuistiin
-                clickLog.Add("Red");
-                AsetaPanosVärille("Punainen");
+                clickLog.Add("Punainen");
+                await LisaaPanos(true);
+                panosAsetettu.TrySetResult(true);
+                double currentbet = panos;
+                pistelaskuri.Value -= currentbet;
+                await AsetaPanosVärille("Punainen", currentbet);
                 if (doneButton == null)
                 {
                     CreateDoneButton();
@@ -1622,13 +1731,18 @@ public class  Financial_Freedom : PhysicsGame
         mustaLabel.Position = new Vector(startX+220, startY+125);
         mustaPanos.Add(mustaLabel);
         
-        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, async () =>
         {
             if (mustaPanos.IsInside(Mouse.PositionOnScreen))
             {
+                panosAsetettu = new TaskCompletionSource<bool>(false);
                 // Tallennetaan värin nimi välimuistiin
-                clickLog.Add("Black");
-                AsetaPanosVärille("Musta");
+                clickLog.Add("Musta");
+                await LisaaPanos(true);
+                panosAsetettu.TrySetResult(true);
+                double currentbet = panos;
+                pistelaskuri.Value -= currentbet;
+                AsetaPanosVärille("Musta", currentbet);
                 if (doneButton == null)
                 {
                     CreateDoneButton();
@@ -1658,26 +1772,75 @@ public class  Financial_Freedom : PhysicsGame
             if (Done.IsInside(Mouse.PositionOnScreen))
             {
                 peliKesken += 1;
-                panosAsetettu.TrySetResult(true);
-                pistelaskuri.Value -= panos;
+                //panosAsetettu.TrySetResult(true);
                 RulettiPyöritys();
             }
-        }, "Aseta panos värille Musta");
+        }, "");
     }
-    
-    void AsetaPanos(int numero)
+
+    async Task AsetaPanos(string numero, double bet)
     {
-        MessageDisplay.Add($"Panos asetettu numeroon {numero}!");
+        if (bet <= 0.0)
+        {
+            return;
+        }
+        var existingBet = bets.FirstOrDefault(b => b.BetType == numero);
+        if (existingBet != null)
+        {
+            existingBet.Amount += bet;
+        }
+        else
+        {
+            bets.Add(new RBetAmounts(numero.ToString(), bet));
+        }
+        
+        panosLabel.Clear();
+        panos = 0;
+        MessageDisplay.Add($"Panos {bet} asetettu numeroon {numero.ToString()}!");
     }
     
-    void AsetaPanosVärille(string väri)
+    async Task AsetaPanosVärille(string vari, double bet)
     {
-        MessageDisplay.Add($"Panos asetettu värille {väri}!");
+        if (bet <= 0.0)
+        {
+            return;
+        }
+        var existingBet = bets.FirstOrDefault(b => b.BetType.Equals(vari, StringComparison.OrdinalIgnoreCase));
+        if (existingBet != null)
+        {
+            // Lisätään panos olemassa olevaan määrään
+            existingBet.Amount += bet;
+        }
+        else
+        {
+            // Lisätään uusi panoslistaan
+            bets.Add(new RBetAmounts(vari, bet));
+        }
+        
+        panosLabel.Clear();
+        panos = 0;
+        MessageDisplay.Add($"Panos {bet} asetettu värille {vari}!");
     }
     
-    void AsetaPanosNollat(string nolla)
+    async Task AsetaPanosNollat(string nolla, double bet)
     {
-        MessageDisplay.Add($"Panos asetettu numerolle {nolla}!");
+        if (bet <= 0.0)
+        {
+            return;
+        }
+        var existingBet = bets.FirstOrDefault(b => b.BetType == nolla);
+        if (existingBet != null)
+        {
+            existingBet.Amount += bet;
+        }
+        else
+        {
+            bets.Add(new RBetAmounts(nolla, bet));
+        }
+        
+        panosLabel.Clear();
+        panos = 0;
+        MessageDisplay.Add($"Panos {bet} asetettu numerolle {nolla}!");
     }
     
     void RulettiPyöritys()
@@ -1691,7 +1854,7 @@ public class  Financial_Freedom : PhysicsGame
         Console.WriteLine($"Panokset on jaettu kohtiin:{string.Join(", ", clickLog)}");
         Console.WriteLine($"Panos per kohde on {panos} jaettuna {clickLog.Count} on {panos/clickLog.Count}");
         
-        RulettiLauta(this, 850, 25, 40, 0, 0);
+        RulettiLauta(this, 850, 20, 30, 0, 0);
         
         TakaisinPV();
     }
@@ -1769,6 +1932,8 @@ public class  Financial_Freedom : PhysicsGame
     }
     public async Task rulepisteenlasku(PhysicsObject transpallo, PhysicsObject pelilauta, List<Angle> checkAngles)
     {
+        double payout = 0;
+        bool voitto = false;
         var rulettitaskut = CreateRouletteBets();
         realangle = (transpallo.Angle.Degrees - pelilauta.Angle.Degrees) % 360;
         Console.WriteLine(transpallo.Angle.GetPositiveDegrees());
@@ -1780,6 +1945,14 @@ public class  Financial_Freedom : PhysicsGame
         
         string voittovari = "";
         int pallosijainti = (int)palloangle(realangle);
+        foreach (var rouletteBet in rulettitaskut)
+        {
+            if (rouletteBet.Pocket == pallosijainti)
+            {
+                voittovari = rouletteBet.Color;
+                break;
+            }
+        }
         
         Console.WriteLine($"Se TOIMIIIIIII {palloangle(realangle)}");
         
@@ -1789,54 +1962,87 @@ public class  Financial_Freedom : PhysicsGame
         List<int> numbers = new List<int>();
         List<string> colors = new List<string>();
 
-        // Käydään läpi alkuperäinen lista
-        foreach (var i in clickLog)
+        foreach (var bet in bets)
         {
-            // Tarkistetaan, onko item numero
-            if (int.TryParse(i, out int result))
+            // Tarkastetaan, onko panos numeropanoksessa
+            if (int.TryParse(bet.BetType, out int betNumber))
             {
-                // Jos on numero, lisätään numerolistaan
-                numbers.Add(result);
-            }
-            else
-            {
-                // Jos ei ole numero, lisätään värilistaan
-                colors.Add(i);
+                if (betNumber == pallosijainti)
+                {
+                    // Oletetaan, että yksittäinen numeropanos maksaa 36-kertaisesti
+                    payout = bet.Amount * 36;
+                    pistelaskuri.Value += payout;
+                    voitto = true;
+                    MessageDisplay.Add($"Numeropanoksesta voitit: +{payout}");
+                }
             }
-        }
-
-        foreach (var i in  numbers)
-        {
-            if (i == pallosijainti)
+            else // Muut panokset, esim. väri
             {
-                pistelaskuri.Value += panos/clickLog.Count*36;
-            }
-        }
-        
-        foreach (var rouletteBet in  rulettitaskut)
-        {
-            if (rouletteBet.Pocket == pallosijainti)
-            {   
-                voittovari = rouletteBet.Color;
-                Console.WriteLine($"Voittava väri on: {rouletteBet.Color}");
-                foreach (var i in colors)
+                // Vertaillaan värin nimiä (huomioi mahdolliset eri nimitykset)
+                if (bet.BetType.Equals(voittovari, StringComparison.OrdinalIgnoreCase)) /*||
+                    (bet.BetType.Equals("Punainen", StringComparison.OrdinalIgnoreCase) && voittovari.Equals("Red", StringComparison.OrdinalIgnoreCase)) ||
+                    (bet.BetType.Equals("Musta", StringComparison.OrdinalIgnoreCase) && voittovari.Equals("Black", StringComparison.OrdinalIgnoreCase)))*/
+                {
+                    // Esim. väri maksaa 2-kertaisesti
+                    payout = bet.Amount * 2;
+                    pistelaskuri.Value += payout;
+                    voitto = true;
+                    MessageDisplay.Add($"Väripanoksesta voitit: +{payout}");
+                }
+                else if (bet.BetType == "0" || bet.BetType == "00")
                 {
-                    if (i == voittovari)
+                    // Esimerkiksi nollille voi olla oma kerroin (tarkista pelin säännöt)
+                    payout = bet.Amount * 50;
+                    // Jos voittava numero on 0 tai 00
+                    if (pallosijainti.ToString() == bet.BetType)
                     {
-                        // Voittajaväriin on laitettu rahaa!
-                        // Tee jotain, esimerkiksi päivitä pistelaskuria
-                        pistelaskuri.Value += panos / clickLog.Count * 2; 
-                        Console.WriteLine("Voitto");
-                        break; // Poistu silmukasta, kun voittava väri on löydetty
+                        pistelaskuri.Value += payout;
+                        voitto = true;
+                        MessageDisplay.Add($"Nollapanoksesta voitit: +{payout}");
                     }
                 }
-                break;
             }
         }
+        bets = null;
         peliKesken -= 1;
+        
+        Label tulosTeksti = new Label();
+        tulosTeksti.TextColor = Color.LimeGreen;
+        tulosTeksti.Color = Color.Black;
+        tulosTeksti.Position = new Vector(-Screen.Width / 3, Screen.Height / 4); // Vasemmalle ylös
+        if (voitto){tulosTeksti.Text = $"Numero: {pallosijainti}\nVäri: {voittovari}\nVoittosumma: {payout}€";}
+        else {tulosTeksti.Text = $"Numero: {pallosijainti}\nVäri: {voittovari}\nHävisit (luuseri) :DD";}
+
+        tulosTeksti.TextScale = new Vector( 2, 2);    
+        Add(tulosTeksti);
+
+        double nappiwidth = 280;
+        double nappiheight = 100;
+        
+        PushButton uusiPeliNappi = new PushButton(nappiwidth, nappiheight, "Uusi peli");
+        uusiPeliNappi.Position = new Vector(Screen.Right-200, Screen.Height / 6); // Oikealle
+        uusiPeliNappi.Size = new Vector(280, 100);
+        uusiPeliNappi.TextScale = new Vector(2,2);
+        uusiPeliNappi.Clicked += delegate { _ = Ruletti(); };;
+        Add(uusiPeliNappi);
+
+        PushButton valikkoNappi = new PushButton( nappiwidth, nappiheight, "Päävalikko");
+        valikkoNappi.Position = new Vector(Screen.Right-200, -Screen.Height / 6); // Oikealle, alemmaksi
+        valikkoNappi.Size = new Vector(280, 100);
+        valikkoNappi.TextScale = new Vector(2,2);
+        valikkoNappi.Clicked += RultoPV;
+        Add(valikkoNappi);
+        
         TakaisinPV();
     }
 
+    public void RultoPV()
+    {
+        ClearControls();
+        ClearGameObjects();
+        PelinValinta();
+    }
+    
     public double palloangle(double realangle)
     {
         var rulettitaskut = CreateRouletteBets();
@@ -1861,11 +2067,18 @@ public class  Financial_Freedom : PhysicsGame
 
     public async Task Slots()
     {
+        Image tyhja = LoadImage("tyhjatausta.png");
+        Level.Background.Image = tyhja;
+        Widget overlay = new Widget(Screen.Width, Screen.Height); // Kuvan koko (leveys, korkeus)
+        overlay.Image = LoadImage("slotBG.png");
+
+        Add(overlay);
+
         panosAsetettu = new TaskCompletionSource<bool>(false);
         ClearGameObjects();
         ClearControls();
         Add(pistenaytto);
-        await LisaaPanos();  // Odotetaan, kunnes panos on asetettu
+        await LisaaPanos(false);  // Odotetaan, kunnes panos on asetettu
         panosAsetettu.TrySetResult(true);
         
         AlustusSlots();
@@ -2110,7 +2323,7 @@ public class  Financial_Freedom : PhysicsGame
         Level.Background.Image = taustakuvaCF;
         Level.Background.Width = Screen.Width;
         Level.Background.Height = Screen.Height;
-        await LisaaPanos();  // Odotetaan, kunnes panos on asetettu
+        await LisaaPanos(true);  // Odotetaan, kunnes panos on asetettu
         panosAsetettu.TrySetResult(true);  // Varmistetaan, että odotus päättyy 
         TakaisinPV();
         ClearControls();
@@ -2385,28 +2598,7 @@ public class  Financial_Freedom : PhysicsGame
     }
     
     
-    /// <summary>
-    /// luo suorakulmion annettun kokoon ja paikkaan
-    /// </summary>
-    /// <param name="peli"></param>
-    /// <param name="width">logon leveys</param>
-    /// <param name="height">logon korkeus</param>
-    /// <param name="x">logon paikka</param>
-    /// <param name="y">logon paikka</param>
-    public void MiniPeliLogo(Game peli, double width, double height, double x, double y, string kuva, int order)
-    {
-        PhysicsObject p = new PhysicsObject(width, height, Shape.Rectangle, x, y);
-        p.Image = LoadImage(kuva); 
-        Label iconLab = new Label(kuva+$" ({order})")
-        {
-            
-            Color = Color.White,
-            Position = new Vector(x, y-90), // Asetetaan sijainti
-        };
-        peli.Add(p);
-        peli.Add(iconLab);
-        
-    }
+    
     async Task Voitto()
     {
         Console.WriteLine(finalscore);
diff --git a/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj b/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj
index b9e7be8adf1c53893e675cb366f10402dd08dd69..2c9c5e3957c5f0a026afca4503afb7b3e0cd85ba 100644
--- a/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj
+++ b/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj
@@ -338,6 +338,12 @@
       <None Update="Content\rulettipöytä.png">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       </None>
+      <None Update="Content\tyhjatausta.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+      <None Update="Content\slotBG.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
     </ItemGroup>
 
     <ItemGroup>