       {:grid-expanded false})
     om/IRenderState
     (render-state [_ state]
-      (dom/div nil
+      (dom/div #js {:style #js {:borderLeft "solid 3px #ccc"
+                                :paddingLeft "10px"}}
                (if-not (:grid-expanded state)
-                 (dom/div nil (dom/p #js {:onClick #(om/set-state! owner :grid-expanded true)} "[+]"))
-                 (dom/div nil (dom/p #js {:onClick #(om/set-state! owner :grid-expanded false)} "[-]")
+                 (dom/div nil (dom/p #js {:onClick #(om/set-state! owner :grid-expanded true)
+                                          :style #js {:color "#999"}}
+                                     (str "[+] " (:ns state))))
+                 (dom/div nil (dom/p #js {:onClick #(om/set-state! owner :grid-expanded false)
+                                          :style #js {:color "#999"}}
+                                     (str "[-] " (:ns state)))
                           (apply dom/table nil
                                  (om/build-all track-view (get cursor "tracks")
                                                {:state state}))))))))

    (render-state [_ state]
      (let [root (get (:grids cursor) "root")]
        (if root
          (dom/div nil
                   (om/build grid-view root {:state (assoc state :ns "root")}))
          (dom/div nil "loading..."))))))
        

    (render-state [_ state]
      (dom/td #js {:onClick #(do
                               (om/update! cursor [(mod (inc (first cursor)) 2)])
                               (go (>! (:set-state-ch state) (:ns state))))
                   :style #js {:width "20px"
                               :fontSize "20px"}}
             (str " " (first cursor))))))

(declare grid-view)
