   (let [[type _] (str/split selected #"-")]
     type))
 
-(defn programmes-div [tables owner]
-  (reify
-    om/IRender
-    (render [_]
-      (let [programmes (-> tables :programmes)]
-        (html
-         ;; hide div if we've already chosen something
-         [:div {:id "programmes-div"}
-          [:h1 "Programmes"]
-          (om/build programmes-table programmes)])))))
-
 ;; our banner is 50px so we need to tweak the scrolling
 (defn fixed-scroll-to-element [element]
   (-> (.getElementById js/document element)
                                     .scrollIntoView)
   (.scrollBy js/window 0 -50))
 
-(defn programmes-table [cursor owner]
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; programmes
+(defn programmes-table [programmes owner]
   (reify
     om/IRender
     (render [_]

                             (history/update-token-ids! history :programmes nil)
                             (fixed-scroll-to-element "programmes-div"))}
                 (title-for programmes)]]]
          (om/build table projects {:opts {:histkey :projects}})])))))

(defn properties-div [tables owner]
  (reify

                             (history/update-token-ids! history :projects nil)
                             (fixed-scroll-to-element "projects-div"))}
                 (title-for projects)]]]
          (om/build properties-table properties {:opts {:histkey :properties}})])))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; devices
(defn devices-div [tables owner]
  (reify
    om/IRender
