                   4 (f (nth argv 1) (nth argv 2) (nth argv 3))
                   5 (f (nth argv 1) (nth argv 2) (nth argv 3) (nth argv 4))
                   (apply f (subvec argv 1)))))]
-    (if (vector? res)
-      (as-element res)
-      (if (ifn? res)
-        (let [f (if (reagent-class? res)
-                  (fn [& args]
-                    (as-element (apply vector res args)))
-                  res)]
-          (.! c :reagentRender f)
-          (recur c))
-        res))))
+    (cond
+      (vector? res) (as-element res)
+      (ifn? res) (let [f (if (reagent-class? res)
+                           (fn [& args]
+                             (as-element (apply vector res args)))
+                           res)]
+                   (.! c :reagentRender f)
+                   (recur c))
+      :else res)))
 
 (declare comp-name)
 

  (if (dev?)
    (let [c *current-component*
          n (or (component-path c)
                (some-> c (.' cljsName)))]
      (if-not (empty? n)
        (str " (in " n ")")
        ""))

  (merge obligatory fun-map))

(defn add-render [fun-map render-f name]
  (assoc fun-map
         :reagentRender render-f
         :render (:render static-fns)))

(defn fun-name [f]
  (or (and (fn? f)
