diff --git a/domino/all_possible_games.py b/domino/all_possible_games.py
index <HASH>..<HASH> 100644
--- a/domino/all_possible_games.py
+++ b/domino/all_possible_games.py
@@ -5,23 +5,29 @@ import itertools
 import multiprocessing
 import random
 
-FIXED_MOVES = 8
+FIXED_MOVES = 10
 
 def compute_all_possible_games(game):
     in_progress = [game]
     completed = []
 
+    def list_to_update(result):
+        if result is None:
+            return in_progress
+        else:
+            return completed
+
     while in_progress:
         game = in_progress.pop()
         moves = game.valid_moves()
 
-        for move in moves:
+        for move in moves[:-1]:
             new_game = copy.deepcopy(game)
             result = new_game.make_move(*move)
-            if result is None:
-                in_progress.append(new_game)
-            else:
-                completed.append(new_game)
+            list_to_update(result).append(new_game)
+
+        result = game.make_move(*moves[-1])
+        list_to_update(result).append(game)
 
     return completed
only copying a game when necessary