                      (.activate this))
         (unregisterOne [this]
                        (set! watchers (dec watchers))
-                       (when (.-auto-clean this) (.clean this)))
+                       ;; (when (.-auto-clean this) (.clean this))
+                       (.clean this)
+                       )
         (addFWatch [this key f]
                    (when-not (aget (.-fwatches this) key)
                      (aset (.-fwatches this) key f)

            (new-reactive-id)
            this
            ckey
            (fn [this] (get (.rawDeref this) ckey))
            (fn [this f & args]
              (.updateChild this ckey f args))
            (fn [this]
              (set! child-cursors (update child-cursors ckey conj this)))
            (fn [this]
              (set! child-cursors
                    (update child-cursors ckey
                            (fn [cursors]
                              (let [cursors (remove #(= % this) cursors)]
                                (when-not (empty? cursors)
                                  cursors))))))
            nil

       (#'clojure.core/setup-reference (ReactiveExpression. f false) options))

     (defmacro reactive [& body]
       `(freactive.core/reactive*
         (fn reactive-computation-fn []
           ~@body)))

