         @socket.on "exception", (e) -> logger.error p, e.message
         @socket.on "error", (e) -> logger.error c, e.message
         @socket.on "disconnect", -> logger.error disconnect
-        @socket.on "connect", -> logger.info connected
+        @socket.on "connect", -> logger.info c, ulocation
 
     # An external routine that will be invoked once a both way duplex
     # channel is established at the client site. This will normally

        osc = (listener) => this.socket.on "connect", listener
        osc => @socket.emit "screening", _.pick(@, @snapshot), =>
            assert @consumeProviders; @consumeProviders @socket
            open = "successfully bootloaded at #{@location}"
            @on "booted", -> @booted = yes; @duplexed = yes
            @on "booted", -> $root.emit "attached", this
            confirm = => logger.info open; @emit "booted"
            @trampoline _.pick(@, @snapshot), confirm

    # An externally exposed method that is a part of the bootloader
    # implementation. It sets up the communication feedback mechanism

        assert _.isFunction o = -> try _.head arguments
        assert _.isFunction i = -> try _.head arguments
        for provider in @providers then do (provider) =>
            message = "Provider %s at %s using nsp=%s"
            assert _.isString uloc = @location.underline
            assert _.isString unsp = @nsp.toString().bold
            logger.info message, provider.bold, uloc, unsp
            this.emit "install-provider", socket, provider
            this[provider] = (parameters..., callback) ->
                callback = (->) unless _.isFunction callback
