                        :or {initial-variables {} prepare-variables default-prepare-variables}}]
            (let [container (fn container []
                              (this-as this
-                               ;; TODO: state!
+                               (.apply js/React.Component this (js-arguments))
                                (set! (.-mounted this) true)
-                               (.apply js/React.Component this (js-arguments))
+                               (set! (.-state this) (->state {:query-data nil
+                                                              :variables nil
+                                                              ;; TODO: add set-variables functionality
+                                                              :cambo/prop {}}))
                                this))]
              (set! (.-prototype container)
                    (goog.object/clone js/React.Component.prototype))

                   (.update-subscription this context)
                   {:query-data (.get-query-data this props context)
                    :variables vars
                    :cambo/prop {:variables next-vars}}))

               (update-fragment-pointers [this props {:keys [route]} vars]

             (specify! (.-prototype container)
               Object
               (shouldComponentUpdate [this next-props next-state next-context]
                 (let [update-props (fn [props]
                                      (reduce (fn [props key]
                                                (let [path (get-path props key)]
                                                  (assoc props key path)))
                                              props
                                              (keys fragments)))
                       current-props (update-props (props this))
                       current-state (state this)
                       current-context (context this)
                       next-props (update-props (get-props next-props))
                       next-state (get-state next-state)
                       next-context (get-context next-context)]
                   (or (not= current-props next-props)
