         (reduce (fn [g cell]
                   (let [collapsing-subcells
                         (keep
-                          (fn [[sub e]] (when (contains? collapsing-cells (:pair e)) sub))
+                          (fn [[sub e]] (when (contains? collapsing-cells (first (:pair e))) sub))
                           (get-in g [:board cell :entanglements]))]
                     (reduce #(assoc-in %1 [:board cell :entanglements %2 :collapsing] true) g collapsing-subcells)))
           (assoc game :collapsing true)

           :turn (:turn game)
           :focus true})))))

(defn play
  "Play an action at the given cell and subcell.
   What the action is depends on the game context."
  [game cell subcell]
  (if (:collapsing game)
    (resolve-collapse game cell subcell)
    (spooky-mark game cell subcell)))

(defn speculate
  "Make a play, but store the previous game state so the 'play' can be easily reverted"

   ;; A cell
  {:entanglements {0 {:player 0
                      :turn 0
                      :pair [4 2]
                      :focus false
                      :collapsing true}
                   1 {:player 1
                      :pair [4 2]
                      :turn 1
                      :focus true}}
   :classical {:player 0
