 (defn App []
   (let [{:keys [data expansion]} @store]
     [:div
-     (str expansion)
+     [:div (str expansion)]
+     [CollapseAllButton]
      [DataDrill {:data data
                  :path []
                  :expansion expansion}]]))

                           :e '(1 2 3)}
                    :expansion #{}}))

(defn emit [event args]
  (prn "Emit: " event args)
  (case event
    :expand (swap! store update :expansion conj args)
    :contract (swap! store update :expansion disj args)))

(declare DataDrill)

(defn Node [{:keys [data path]}]
  [:div (if (string? data)

    [DataDrill {:data v
                :path (conj path k)
                :expansion expansion}]]])

(defn ListVecNode [{:keys [data path expansion]}]
  (let [expanded? (get expansion path)]
