 
     # only when the builder approves the new tag we can proceed with announcing
     # the new tag to the parent and to the tree and apply the childrenscope
-    @builder.approve this, newtag, (_, tag) =>
+    @builder.approve 'new', this, newtag, (_, tag) =>
 
         tag.on 'data', events.data = (data) =>
             if @pending[0] is tag

        @builder = this
        @buffer = [] # for child output
        @pending = [] # no open child tag
        @checkers = [] # all the middlewares that have to approve a new tag
        # states
        @closed = no
        # defaults

            if @pending.length
                @closed = 'pending'
            else
                @builder.approve 'end', this, =>
                    if @isempty
                        data = "<#{@name}#{new_attrs @attrs}/>"
                        @closed = 'self'
                    else
                        data = "</#{@name}>"
                        @closed = yes
                    @emit 'data', prettify this, data
                    @emit 'close', this
                    @emit 'end'
                    @writable = false
        else if @closed is 'removed'
            @builder.approve 'end', this, =>
                @emit 'end'
                @writable = false
        else
            @closed = yes
            @writable = false
        this

    toString: () =>
