                  (fn [x] (setter x (apply f (getter x) args)))))
         (fn [this]
           ((.-add-watch binding-info) parent id
-           (fn [k r o n] (.updateCursor this (getter n)))))
+           (fn [k r o n] (.updateCursor this (getter n) *change-ks*))))
         (fn [this] ((.-remove-watch binding-info) parent id))
         nil
         nil

        (let [new-value (apply f (.-state cur) args)]
          (when-let [validate (.-validator cur)]
            (assert (validate new-value) "Validator rejected reference state"))
          (.updateCursor cur new-value)))
      (fn [])
      (fn [])
      nil

                            (fn [cursors]
                              (let [cursors (remove #(= % cur) cursors)]
                                (when-not (empty? cursors)
                                  cursors)))))
              (.unregisterOne this))
            nil
            nil
            nil
