     (aget o k)))
 
 (defn cached-prop-name [k]
-  (if-not (implements? INamed k)
+  (if-not (named? k)
     k
     (if-let [k' (obj-get prop-name-cache (name k))]
       k'


(defn convert-prop-value [x]
  (cond (or (string? x) (number? x) (fn? x)) x
        (implements? INamed x) (name x)
        (map? x) (reduce-kv (fn [o k v]
                              (doto o
                                (aset (cached-prop-name k)


;;; Common utilities

(defn named? [x]
  (or (keyword? x)
      (symbol? x)))

(defn hiccup-tag? [x]
  (or (keyword? x)
      (symbol? x)
      (string? x)))

(defn valid-tag? [x]
