                                                                 (conj destination-path (dec (count new-destination-children))))
                                                  (-> d
                                                      (assoc-in (conj parent-path :children) new-parent-children)
+                                                     (update-in up-path dissoc :closed)
                                                      (assoc-in destination-path             new-destination-children)
                                                   )))))
                              :left-shift-node

                      data]
  (cond
   ; current node has children? -> first child
   (not (empty? (:children current))) (conj current-path :children 0)
   ; not max sibling? -> go to next sibling
   (and parent-children (< current-child-idx (dec (count parent-children)))) down-path
   ; else, find next depth wise.

                                                     (assoc-in destination-path             new-destination-children)
                                                     (assoc-in (conj parent-path :children) new-parent-children)
                                                  )))))
                             (recur)
                             )))

                        ; click events
