              [name {:root root
                     :pathsets pathsets}])))
 
+(def variables-key "cambo$variables")
+
+(defn get-variables
+  [props]
+  (aget props variables-key))
+
+(defn variables*
+  [this]
+  (get-variables (.-props this)))
+
 (defn variables
   [this]
-  (get-in (props this) [:cambo/prop :variables]))
+  (get (variables* this) :variables))
 
 (defn set-variables
   ([this variables]
    (set-variables this variables nil))
   ([this variables cb]
-   (let [run (get-in (props this) [:cambo/prop :run])]
+   (let [{:keys [run]} (variables* this)]
      (run variables cb false))))
 
 (defn force-fetch

                         (not= current-context next-context)))))

               (render [this]
                 (let [{:keys [query-data cambo/prop]} (state this)
                       component-props (merge (props this)
                                              {:cambo/prop prop}
                                              query-data)]
                   (js/React.createElement component (->props component-props)))))

             container)))


  ([this variables]
   (force-fetch this variables nil))
  ([this variables cb]
   (let [{:keys [run]} (variables* this)]
     (run variables cb true))))

#?(:cljs (defn create-container
