 (ns pani.cljs.core
-  (:refer-clojure :exclude [name get-in merge])
+  (:refer-clojure :exclude [name get-in merge set!])
   (:require cljsjs.firebase
             [cljs.core.async :as async :refer [<! >! chan put! merge]])
   (:require-macros [cljs.core.async.macros :refer [go go-loop]]))

(defn set!
  "Set the value at the given root"
  ([root val]
   (fb-call! #(.set %1 %2) root val))

  ([root korks val]
   (fb-call! #(.set %1 %2) root korks val)))

(defn push!
  "Set the value at the given root"
  ([root val]
   (fb-call! #(.push %1 %2) root val))

  ([root korks val]
   (fb-call! #(.push %1 %2) root korks val)))

(defn remove!
  "Remove the value at the given location"

      nil
      p)))

(defn get-in
  "get-in style single shot get function, returns a channel which delivers the value"
  [root ks]
