       (let [[actx event] (<! event-ch)
             [verb step & args] event
             vis-event-handler (get (get vis-event-handlers verb) step)]
-        (println num-events event (vis-event-handler vis actx args) args)
-        (set-el-innerHTML "event" [num-events event])
+        (vis-event-handler vis actx args)
+        (set-el-innerHTML "event" [num-events @vis])
         (set-el-innerHTML "vis"
                           (str "<circle cx='"
                                (mod num-events 500)

   "atake"
   {:beg (fn [vis actx args]
           (let [[ch] args]
             (swap! vis #(assoc-in % [:actxs actx :want-chs ch] :take))))
    :end (fn [vis actx args]
           (let [[ch result] args]
             (swap! vis #(dissoc-in % [:actxs actx :want-chs ch]))))}
   "aput"
   {:beg (fn [vis actx args]
           (let [[ch msg] args]
             (swap! vis #(assoc-in % [:actxs actx :want-chs ch] :put))))
    :end (fn [vis actx args]
           (let [[ch msg result] args]
             (swap! vis #(dissoc-in % [:actxs actx :want-chs ch]))))}
   "aalts"
   {:beg (fn [vis actx args]
           (let [[chs] args] 1))

           (let [[chs result] args] 2))}})

(defn vis-init [cmds cmd-handlers]
  (let [vis (atom {:actxs {} :want-chs {}})
        max-inflight (atom 10)
        event-delay (atom 0)
        event-ch (chan)
