                   :gen-id gen-id})
             delayed-event-cb (fn [vis-next]
                                (println :on-delayed-event-cb @last-id))]
-        (reset! prog-world {:world world
-                            :net-listen-ch (achan-buf world 10)
-                            :net-connect-ch (achan-buf world 10)
-                            :servers {}
-                            :clients {}
-                            :res-ch (achan-buf world 10)})
+        (swap! prog-history
+               #(assoc % :prog-world
+                       {:world world
+                        :net-listen-ch (achan-buf world 10)
+                        :net-connect-ch (achan-buf world 10)
+                        :servers {}
+                        :clients {}
+                        :res-ch (achan-buf world 10)}))
         (cbfg.vis/process-events vis event-delay cbfg.vis/vis-event-handlers
                                  event-ch step-ch event-run-ch)
         (cbfg.vis/process-render el-prefix world event-run-ch delayed-event-cb)
-        ;;; (go-loop [vis-ts]
-        ;;; (when-let [[vis-next deltas after event-str] (<! event-run-ch)]
-        ;;; (recur (inc vis-ts))))
         (make-net world
-                  (:net-listen-ch @prog-world)
-                  (:net-connect-ch @prog-world))
+                  (:net-listen-ch (:prog-world @prog-history))
+                  (:net-connect-ch (:prog-world @prog-history)))
         (let [vis-chs {}
               req-ch (achan world)
               cmd-ch (map< (fn [ev] {:op (.-id (.-target ev))

         (map (fn [[k v]] (dom/li nil (str k ":" v))) app)))

(defn on-event-focus [snapshot-ts event-ts]
  (when-let [ss (get-in @run-history [:snapshots snapshot-ts])]
    (reset! run-world-hover ss)
    (.add gdom/classes (gdom/getElement "world-container") "hover")))


              prog-js (str "with (cbfg.world.t1) {" prog "}")
              prog-res (try (js/eval prog-js) (catch js/Object ex ex))]
          (world-cmd-loop world cbfg.world.lane/cmd-handlers cmd-ch
                          req-ch (:res-ch (:prog-world @prog-history))
                          vis-chs world-vis-init el-prefix)
          (act-loop cmd-dispatch-loop world [num-dispatches 0]
                    (when-let [msg (atake cmd-dispatch-loop req-ch)]
                      (when-let [client-req-ch
                                 (get-in @prog-history
                                         [:prog-world :clients (:client msg) :req-ch])]
                        (aput cmd-dispatch-loop client-req-ch msg))
                      (recur (inc num-dispatches))))
          (println :prog-res prog-res)
