         (when-not (= (last b) n)
           (append-to-branch (@current-branch :data) n))
         (let [c (len @(@current-branch :data))]
-            (render-tree @app-history)
+            (render-tree @app-history @current-branch (fn [branch] (switch-to-branch branch)))
             (prn (str c " Saved " (pluralize c "State")))))))
 
 (om/root
   (fn [app owner]
     (om/component 
       (dom/div {}
-        (om/build morphic/morph app)
         history-slider)))
   history-view 
   {:target (. js/document (getElementById "inspector"))})
(def current-branch (atom {:id (generate-uuid) :data (atom [])}))

;; global atom referencing the total history graph
(def app-history (@current-branch :data))

;; ffd
(def history-view)

(defn switch-to-branch [branch]
  (prn "old branch id: " (@current-branch :id))

          pre-branch (vec (take rel-index @branch-part)) 
          post-branch (vec (drop rel-index @branch-part))
          ; insert the branching point into the old branch
          branched-branch (conj pre-branch {:cont {:root @branch :data (atom post-branch)} :fork new-branch})]
        ; update the old branch with the inserted version
        (reset! branch-part branched-branch)
        ; let current branch pointer point to new branch
