diff --git a/memory_lib/memory.py b/memory_lib/memory.py
index 8d2c61c2ad93ac44cdd3e8c0dea83be006e63766..1324d84cd3215a9672ac1612e77ceb51fcb95597 100644
--- a/memory_lib/memory.py
+++ b/memory_lib/memory.py
@@ -53,6 +53,7 @@ class Memory(ABC, threading.Thread, PiecesObserver):
             if key == ord("r"):
                 self.reset()
             if key == ord("q"):
+                self.stopped_trigger()
                 break
 
     @abstractmethod
diff --git a/memory_lib/model.py b/memory_lib/model.py
index 6fb2d508b1261c3d84ab5797697b3b632cd180d9..506981909d57a3fc132d0407643924a83ece4016 100644
--- a/memory_lib/model.py
+++ b/memory_lib/model.py
@@ -69,6 +69,7 @@ class PiecesObserver:
     def __init__(self):
         self._pieces_observers = []
         self._board_observers = []
+        self._stopped_observers = []
 
     def bind_pieces(self, callback: Callable):
         self._pieces_observers.append(callback)
@@ -76,6 +77,9 @@ class PiecesObserver:
     def bind_board(self, callback: Callable):
         self._board_observers.append(callback)
 
+    def bind_stopped(self, callback: Callable):
+        self._stopped_observers.append(callback)
+
     def piece_trigger(self, piece_id: int):
         """On every piece state change, send the piece id that changed"""
         for callback in self._pieces_observers:
@@ -85,3 +89,8 @@ class PiecesObserver:
         """On every frame, send the full board"""
         for callback in self._board_observers:
             callback(board)
+
+    def stopped_trigger(self):
+        """On every frame, send the full board"""
+        for callback in self._stopped_observers:
+            callback()