     hide: Tag::hide
     remove: Tag::remove
     replace: Tag::replace
+    # intern getter to let intern tag structure stay in sync with eg dom
+    # can be overwritten
+    query: default_query
 
     toString: ->
         "[object AsyncXMLBuilder]"

        this


class Builder extends EventEmitter
    constructor: (@opts = {}) ->
        # methods

        return callback?.call(this) if @closed is yes
        @once 'end', callback

    removeAllListeners: (event) =>
        # clear all references
        delete @checkers
        @query = default_query
        EventEmitter::removeAllListeners.call(this, event)

    register: (type, checker) ->
        unless type is 'new' or type is 'end' or type is 'ready'
