   [_ form-value _]
   form-value)
 
+(defmethod produce-maze-value :anim-chan
+  [_ form-value _]
+  form-value)
+
 (defmethod produce-maze-value :grid
   [_ new-value {:keys [maze] :as state}]
   (let [{:keys [algorithm rows columns grid]} maze]

                 (let [grid (assoc grid :path {:distances distances
                                               :color-family :red})]
                   (set-maze-params! :grid (atom grid))
                   (async/<! (async/timeout 0))
                   (recur grid)))
               grid))))


        result-chan (algs/seq-channel algorithm-fn)]
    (go
      (set-maze-params! :grid (atom grid))
      (async/<! (sync-chan anim-chan))
      (loop [prev-maze nil]
        (if-let [new-maze (async/<! result-chan)]
          (do
            (set-maze-params! :grid (atom new-maze))
            (async/<! (sync-chan anim-chan))
            (recur new-maze))
          (do
            (set-maze-params! :active nil)
