 
 (defonce channel-closers (atom {}))
 
+(defn- closer-path [data path]
+  (conj (vec (cons data path)) :-closer))
+
 (defn- save-channel-closer! [data path channel]
-  (swap! channel-closers assoc-in (cons data path) channel))
+  (swap! channel-closers assoc-in (closer-path data path) channel))
 
 (defn- close-channel! [data path]
-  (let [identifier (cons data path)]
+  (let [identifier (closer-path data path)]
     (when-let [close-chan (get-in @channel-closers identifier)]
       (put! close-chan :close)
       (swap! channel-closers dissoc-in identifier))))

    (swap! data dissoc-in path)
    (swap! channel-closers assoc-in identifier
           (init-item-sync! data id path))))

    (if ks
      (recur (.child r (clojure.core/name k)) ks)
      (.child r (clojure.core/name k)))))

(defn- id->fbref [id]
  (walk-root root [:item (str id)]))
