     (if (> (count v) first-child)
       (subvec v first-child))))
 
+(defn props-argv [p]
+  (.' p :argv))
+
 (defn get-argv [c]
   (.' c :props.argv))
 
 (defn get-props [c]
-  (-> (.' c :props.argv) extract-props))
+  (-> (get-argv c) extract-props))
 
 (defn get-children [c]
-  (-> (.' c :props.argv) extract-children))
+  (-> (get-argv c) extract-children))
 
 (defn reagent-component? [c]
-  (-> (.' c :props.argv) nil? not))
+  (-> (get-argv c) nil? not))
 
 
 ;;; State

    :componentWillUpdate
    (fn [nextprops]
      (this-as c
               (f c (.' nextprops :argv))))

    :componentDidUpdate
    (fn [oldprops]
      (this-as c
               (f c (.' oldprops :argv))))

    :componentWillMount
    (fn []

(declare ^:dynamic *non-reactive*)


;;; Argv access

(defn extract-props [v]
  (let [p (nth v 1 nil)]
    (if (map? p) p)))
