   (if (< i (dec (count @branch))) 
       (let [e (nth @branch i)] 
         (if (e :cont)
-          [0 (e :cont)]
+          [0 (get-in e [:cont :data])]
           [i branch]))
-      (if-let [cont ((last @branch) :cont)]
+      (if-let [cont (get-in (last @branch) [:cont :data])]
         (get-branch-part (- i (dec (count @branch))) cont)
         (prn "Out of Range!"))))
 

(defn append-to-branch [branch s]
  ; in case the branch got forked we have to jump these interruptions
  (if-let [end (last @branch)]
    (if-let [cont (end :cont)] 
      (append-to-branch cont s)
      (swap! branch conj s))
    (swap! branch conj s)))

        (when-not (= (last b) n)
          (append-to-branch (@current-branch :data) n))
        (let [c (len @(@current-branch :data))]
            (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 {}
        history-slider)))
  history-view 
  {:target (. js/document (getElementById "inspector"))})