 EVENTS.forEach (e) ->
     defaultfn[e] = -> throw new Error "no specific fn for #{e} defined" # dummy
 
+
+prepare_cancelable_manip = (el, canceled) ->
+    (el._browser ?= new BrowserState).manip ?=
+        cancelable_and_retrivable_callbacks(canceled)
 
 ##
 # this contains the tag specific browser state from the user/developer event loop,

        @make(el) # create a dom object
        that = this
        (el._browser ?= new BrowserState).initialize()
        parent._browser_done ?= deferred_callbacks()
        while (cb = el._browser.manip.callbacks.shift())?
            @animation.push(cb)


                @animation.push(newtag._browser.replace)

    ontext: (el, text) ->
        @animation.push prepare_cancelable_manip(el, yes) =>
            @fn.text(el, text)

    onraw: (el, html) ->
        @animation.push prepare_cancelable_manip(el, yes) =>
            @fn.raw(el, html)

    onattr: (el, key, value) ->
        @animation.push prepare_cancelable_manip(el, yes) =>
            @fn.attr(el, key, value)

    onshow: (el) ->
