 
 (def ^:private attr-setters
   #js
-  {:data-state (fn [element state] (set-data-state! element state))
-   :class (fn [element cls] (set! (.-className element) cls))
+  {:data-state (fn [element state]
+                 (set-data-state! element state)
+                 state)
+   :class (fn [element cls]
+               (set! (.-className element) cls)
+               cls)
    ;; :id (fn [element id] (set! (.-id element) id))
    })
 

    (doseq [[k v] attrs]
      (let [attr-ns (namespace k)
            attr-name (name k)]
        (binder node attr-ns attr-name v node-state)
        (aset js-attrs (if attr-ns (str attr-ns "/" attr-name) attr-name)
              (when-not (satisfies? IDeref v)
                v))))
    js-attrs))

(defn- bind-attrs! [node attrs node-state]

          (if (.-substring prop-value)
            prop-value
            (.toString prop-value)))
    (js-delete (.-style elem) prop-name))
  prop)

(defn- remove-style-prop! [elem prop-name]
  (js-delete (.-style elem) prop-name))
