 (defonce url "https://hacker-news.firebaseio.com/v0")
 
 (defonce root (js/Firebase. url))
+
+(defn- walk-root [r keys]
+  (let [[k & ks] keys]
+    (if ks
+      (recur (.child r (clojure.core/name k)) ks)
+      (.child r (clojure.core/name k)))))
 
 (defonce channel-closers (atom {}))
 

    (when-let [close-chan (get-in @channel-closers identifier)]
      (put! close-chan :close)
      (swap! channel-closers dissoc-in identifier))))

(defn- walk-root [r keys]
  (let [[k & ks] keys]
    (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)]))

  ([id] (id->fb-chan id (chan)))
  ([id close-chan]
   (fb->chan (id->fbref id) close-chan)))

(defn unbind-item-sync!
  [data path]
