             logger.info message, provider.bold, uloc, unsp
             this.emit "install-provider", socket, provider
             this[provider] = (parameters..., callback) ->
-                assert @booted and @duplexed, notConnected
+                assert not this.outOfOrder(), noConnection
                 callback = (->) unless _.isFunction callback
                 noCallback = "#{callback} is not a callback"
                 assert _.isFunction(callback), noCallback

        osc => @socket.emit "screening", _.pick(@, @snapshot), =>
            assert @consumeProviders; @consumeProviders @socket
            assert o = "Successfully bootloaded at %s".green
            @on "booted", -> @booted = yes; @duplexed = yes
            @on "booted", -> @broadcast "attached", this
            @trampoline _.pick(@, @snapshot), (params) =>
                logger.info o, @location.underline.green

        p = "an exception happend at the server provider:"
        connected = c = "Established connection at %s".green
        disconnect = "lost socket connection at #{@location}"
        @on "disconnect", -> @booted = false # connection lost
        @outOfOrder = -> return @initialized and not @booted
        @setInOrder = -> return try @initialized and @booted
        breaker = try this.STOP_ROOT_PROPAGATION or undefined
        r = (e, s) => this.emit(e, s...); @broadcast(e, s...)
        forward = (evt) => @socket.on evt, => r evt, arguments
        forward "disconnect" # lost socket connection to server
        forward "connect" # a successfull connection happended
