--- a/Classes/Field/CardStack.cs
+++ b/Classes/Field/CardStack.cs
@@ -1,10 +1,11 @@
 ďťżusing System;
 using System.Collections;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 
 namespace YuGiOh_Ultra {
-    public class CardStack : IEnumerable<ICard> {
+    public class CardStack : IEnumerable<ICard>, INotifyPropertyChanged {
         private LinkedList<ICard> Cards = new LinkedList<ICard>();
 
         public CardStack() {}
@@ -15,9 +16,13 @@
         public void AddTop( ICard c ) {
             if( c == null ) throw new InvalidCardException();
             Cards.AddFirst( c );
+            NotifyPropertyChanged( "Count" );
         }
 
-        public void AddBottom( ICard c ) { Cards.AddLast( c ); }
+        public void AddBottom( ICard c ) {
+            Cards.AddLast( c );
+            NotifyPropertyChanged( "Count" );
+        }
 
         /// <summary>
         /// remove top card
@@ -86,8 +91,13 @@
             Cards = new LinkedList<ICard>( cardlist );
         }
 
-        public bool IsEmpity() {
-            return Cards.Count == 0;
+        public bool IsEmpity() { return Cards.Count == 0; }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+        private void NotifyPropertyChanged( String info ) {
+            if( PropertyChanged != null ) {
+                PropertyChanged( this, new PropertyChangedEventArgs( info ) );
+            }
         }
     }
 }