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

          (map (fn [kv] ["<li>" (vis-html vis (first kv)) "</li>"]) children)
          "</li></ul>"]
         [])
       (if (not-empty want-chs)
         ["<li>waiting...<ul>"
          (map (fn [kv] ["<li>" (second kv) "</li>"]) want-chs)
          "</li></ul>"]
         [])
       "</ul>"

   {:beg (fn [vis actx args]
           (let [[child-actx] args]
             (swap! vis #(assoc-in % [:actxs child-actx]
                                   {:children {} :wait-chs {}}))
             (swap! vis #(assoc-in % [:actxs actx :children child-actx]
                                   true))))
    :end (fn [vis actx args]
