     (when handler
       (unlisten! node event-name handler)))
   (dispose [this]
-    (.unlisten this)
-    (set! (.-disposed this) true)))
+    (.unlisten this)))
 
 (defn- bind-event! [node event-name handler]
   ((EventBinding. node (name event-name) nil) handler))


  Object
  (dispose [this]
    (r/dispose attr-binder)
    ;; (dispose-states attr-states)
    ;; (dispose-states events)
    ;; (dispose-states styles)
    (doseq [i (range (.-length children))]
      (r/dispose (aget children i))))
  (ensureNode [this]
    (when-not node

  (-velem-simple-element [this] this)
  (-velem-insert [this vparent vnext-sibling]
    (set! parent vparent)
    (if-let [diff-head (get-diff-head)]
      (ui/velem-replace this diff-head)
      (do
        (.ensureNode this)
        (dom-insert parent node vnext-sibling)
        (.onAttached this)))
    this)
  (-velem-take [this]
    (dom-remove node)) 
  (-velem-replace [this old-velem]
    (if-let [old-simple (ui/velem-simple-element old-velem)]
      (when-not (.diffReplace this old-simple)
        (.ensureNode this)
        (dom-simple-replace node (ui/velem-native-element old-simple))
        (r/dispose old-velem))
      (do
        (.ensureNode this)
        (dom-remove-replace node old-velem)))
    (.onAttached this)
    this)
  (-velem-lifecycle-callback [this cb-name]
