                  (:controls app))))
    app-state
    {:target (. js/document (getElementById "controls"))})
+
   (om/root
    (fn [app owner]
      (apply dom/ul nil
-            (map (fn [x] (dom/li nil x))
+            (map (fn [[ts kind & rest]]
+                   (dom/li nil
+                           (str ts)
+                           (str kind)
+                           (when (= kind :snapshot)
+                             (render-snapshot app owner ts))))
                  (:events app))))
    app-state
    {:target (. js/document (getElementById "events"))})
+
   (om/root render-world app-state
            {:target (. js/document (getElementById "world"))})
   (om/root render-world app-state

   {:text "hello"
    :controls ["play" "step" "pause"]
    :speed 1.0
    :events [1 2 3 4]
    :world {:a 11 :b 22 :c 33}
    :hover nil}))


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

(defn render-snapshot [app owner ss-ts]
  (apply dom/ul nil
         (map (fn [[k v]] (dom/li nil (str k "=" v)))
              (get-in app [:snapshots ss-ts] nil))))

(defn init-roots [app-state]
  (om/root
   (fn [app owner]
