         context = kernel.secureSocket.of @location()
         pure = /[a-zA-Z0-9/-_]+/.test @location()
         assert pure, "location is not pure enough"
-        context.authorization @authorization.bind(@)
+        assert applied = @authorization context
+        context.authorization applied.bind this
         context.on "connection", (socket) =>
             socket.on "screening", (binder, ack) =>
                 screening = @upstreamAsync "screening", =>

    connected: (context, socket, next) -> next()

    # A usable hook that gets asynchronously invoked once a new
    # channel (socket) gets past authorization phase and is rated
    # to be good to go through the screening process. This is good
    # place to implementation various schemes for authorization. If

    # during the handshake phase. This method checks that handshake
    # contains correct session requsities and restores the session!
    # The session can normally be used as you would use req session.
    authorization: (context) => (handshake, accept) ->
        assert _.isFunction session = @kernel.session
        assert _.isFunction cookies = @kernel.cookieParser
        handshake.originalUrl = handshake.url or "/"
        Response = class RDummy extends EventEmitter2
        Response::setHeader = (name, value) -> undefined
        Response::end = (data, encoding) -> undefined
        cookies handshake, response = new Response, =>
            session handshake, response, =>
                session = handshake.session
                ns = new Error "no session found"
                return accept ns, no unless session
                upstream = @upstreamAsync "handshake", ->
                    return accept undefined, yes
                return upstream handshake, context

    # An internal, static method that is used to obtain gurading
    # domains for each of the declared server site providers. Please
