diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity
index 3df48c07109fb1b426d96d6c1c4d31e03d64aa78..f796f0f9b815e8a7824cb2c49a0595138f7183a7 100644
--- a/Assets/Scenes/Game.unity
+++ b/Assets/Scenes/Game.unity
@@ -667,7 +667,7 @@ RectTransform:
   m_Children:
   - {fileID: 569274362}
   m_Father: {fileID: 481556386}
-  m_RootOrder: 6
+  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
@@ -767,12 +767,12 @@ RectTransform:
   m_LocalScale: {x: 0, y: 0, z: 0}
   m_Children:
   - {fileID: 783529343}
-  - {fileID: 374355139}
+  - {fileID: 66537583}
   - {fileID: 1288275031}
   - {fileID: 577289746}
-  - {fileID: 66537583}
   - {fileID: 872592475}
   - {fileID: 479419672}
+  - {fileID: 374355139}
   - {fileID: 1744303087}
   - {fileID: 1251018139}
   - {fileID: 134461203}
@@ -1191,7 +1191,7 @@ PrefabInstance:
     - target: {fileID: 139765660913410017, guid: d0234dba4f26d784da07183cd1e0aa62,
         type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 6
       objectReference: {fileID: 0}
     - target: {fileID: 139765660913410017, guid: d0234dba4f26d784da07183cd1e0aa62,
         type: 3}
@@ -2301,6 +2301,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: db8123992f78b004a888a3ac87945fe3, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  dumpPreview: []
 --- !u!1 &1324837648
 GameObject:
   m_ObjectHideFlags: 0
@@ -2802,7 +2803,7 @@ PrefabInstance:
     - target: {fileID: 3072710562047330836, guid: 4f4f0547ba7cb524d99380ce8b591908,
         type: 3}
       propertyPath: m_RootOrder
-      value: 4
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 3072710562047330836, guid: 4f4f0547ba7cb524d99380ce8b591908,
         type: 3}
@@ -3585,7 +3586,7 @@ PrefabInstance:
     - target: {fileID: 6477196409435443291, guid: bdc35112fe6b03a4a93248988eb89992,
         type: 3}
       propertyPath: m_RootOrder
-      value: 5
+      value: 4
       objectReference: {fileID: 0}
     - target: {fileID: 6477196409435443291, guid: bdc35112fe6b03a4a93248988eb89992,
         type: 3}
diff --git a/Assets/Scripts/Cards/Card.cs b/Assets/Scripts/Cards/Card.cs
index 9e580926292c6ac4eeccdbce46e90e2aac7de7cb..5591d62505c8765e6517e67d2542671a71ecca4c 100644
--- a/Assets/Scripts/Cards/Card.cs
+++ b/Assets/Scripts/Cards/Card.cs
@@ -62,6 +62,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
             if (Player.Instance.Energy < mCost)
                 return;
             Player.Instance.Energy -= mCost;
+            gameObject.GetComponentInParent<Hand>().Discard(this);
             CardEvent<Card>.Trigger(Event.CARD_PLAYED, this);
             Effect endEffect = null;
             for (int i = 0; i < mEffectMultiplicator; i++)
@@ -79,8 +80,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
                     break;
                 }
             }
-            CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this);
-            gameObject.GetComponentInParent<Hand>().Discard(this);
+            CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this);           
         }
         else
         {
diff --git a/Assets/Scripts/Deck/Deck.cs b/Assets/Scripts/Deck/Deck.cs
index e965846fdc05c8ecc456b4ab11d5e284ee9752cc..b4d7a9882f8a3a1c8bebda9aa7163aefaa9d95f5 100644
--- a/Assets/Scripts/Deck/Deck.cs
+++ b/Assets/Scripts/Deck/Deck.cs
@@ -8,6 +8,8 @@ public class Deck : MonoBehaviour
     private List<Card> totalCards;
 
     [SerializeField]
+    private List<Card> deckPreview;
+
     public Stack<Card> currentDeck;
 
     [SerializeField]
@@ -20,12 +22,14 @@ public class Deck : MonoBehaviour
         {
             totalCards = new List<Card>(GetComponentsInChildren<Card>());
             currentDeck = new Stack<Card>();
+           
             foreach (Card card in totalCards)
             {
                 initializer.InitCard(card);
                 card.gameObject.SetActive(false);
                 currentDeck.Push(card);
             }
+            deckPreview = currentDeck.ToList();
         }
     }
 
@@ -35,8 +39,13 @@ public class Deck : MonoBehaviour
         if(currentDeck.Count == 0)
         {
             Reshuffle();
+
         }
-        return currentDeck.Pop();
+        Card result = currentDeck.Pop();
+        deckPreview = currentDeck.ToList();
+        return result;
+
+
     }
 
 
@@ -70,6 +79,7 @@ public class Deck : MonoBehaviour
             totalCards.Insert(j, card);
         }
         PutCardInDeck(card);
+        deckPreview = currentDeck.ToList();
     }
 
     public void PutCardInDeck(Card card)
@@ -97,6 +107,7 @@ public class Deck : MonoBehaviour
             Card tmp = dump.Pop();
             PutCardInDeck(tmp);
             ShuffleDeck();
+            deckPreview = currentDeck.ToList();
         }
         if(currentDeck.Count == 0)
         {
diff --git a/Assets/Scripts/Deck/Dump.cs b/Assets/Scripts/Deck/Dump.cs
index 028f065b4fbe7a549d75dc130e1cfc419de3ab86..9b4bb9e7431c1989d92fe1f6c79fdd376658c8f9 100644
--- a/Assets/Scripts/Deck/Dump.cs
+++ b/Assets/Scripts/Deck/Dump.cs
@@ -1,9 +1,13 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using System.Linq;
 
 public class Dump : MonoBehaviour
 {
+    [SerializeField]
+    private List<Card> dumpPreview;
+
     public Stack<Card> dumpStack;
 
     public static Dump Instance
@@ -24,6 +28,7 @@ public class Dump : MonoBehaviour
         }
 
         dumpStack = new Stack<Card>();
+        dumpPreview = dumpStack.ToList();
     }
 
     public void Discard(Card card)
@@ -38,24 +43,12 @@ public class Dump : MonoBehaviour
     {
         CardEvent<Card>.Trigger(Event.CARD_DISCARD, card);
         card.transform.SetParent(transform);
-        card.gameObject.SetActive(false); dumpStack.Push(card);
-    }
+        card.gameObject.SetActive(false);
+        dumpStack.Push(card);
+        dumpPreview = dumpStack.ToList();
 
-    public void Init()
-    {
-        if (Instance == null)
-        {
-            Instance = this;
-        }
-        else if(Instance != this)
-        {
-            DestroyImmediate(this);
-        }
-
-        dumpStack = new Stack<Card>();
     }
 
-
     public Stack<Card> Recycle ()
     {
         Stack<Card> result = new Stack<Card>();
@@ -64,13 +57,16 @@ public class Dump : MonoBehaviour
         {
             result.Push(dumpStack.Pop());
         }
-
+        dumpPreview = dumpStack.ToList();
         return result;
     }
 
     public Card Draw()
     {
-        return dumpStack.Pop();
+        
+        Card result = dumpStack.Pop();
+        dumpPreview = dumpStack.ToList();
+        return result; 
     }
 
 
diff --git a/Assets/Scripts/Deck/Hand.cs b/Assets/Scripts/Deck/Hand.cs
index 171568636803ce05c4867b5a4fe5d81feb7128b1..475b27a2c472a4c13cd77c9af56841d442728c90 100644
--- a/Assets/Scripts/Deck/Hand.cs
+++ b/Assets/Scripts/Deck/Hand.cs
@@ -33,13 +33,12 @@ public class Hand : MonoBehaviour
 
     public void Draw()
     {
-        Debug.Log("Drawing");
 
         Card newCard = deck.Draw();
-        
-        if(hand.Count < MaxHandSize)
+        hand.Add(newCard);
+        if (hand.Count <= MaxHandSize)
         {
-            hand.Add(newCard);
+            
             newCard.transform.SetParent(transform);
             newCard.gameObject.SetActive(true);
             newCard.GetComponent<CardUi>().Show();
@@ -47,17 +46,17 @@ public class Hand : MonoBehaviour
         }
         else
         {
-            Discard(newCard);
+
+            Discard(newCard,true);
         }
     }
 
     public void ExtraDraw()
     {
         Card newCard = deck.Draw();
-
-        if (hand.Count < MaxHandSize)
+        hand.Add(newCard);
+        if (hand.Count <= MaxHandSize)
         {
-            hand.Add(newCard);
             newCard.transform.SetParent(transform);
             newCard.gameObject.SetActive(true);
             newCard.GetComponent<CardUi>().Show();
@@ -65,7 +64,7 @@ public class Hand : MonoBehaviour
         }
         else
         {
-            Discard(newCard);
+            Discard(newCard,true);
         }
     }