             res.writeHead 500, "a proxy backend error"
             res.end format msg, err.toString(); this
 
+    makeSelectors: (queue, kind) -> (request, response) =>
+        proxy = queue.shift()
+        assert _.isObject proxy
+        num = queue.push proxy
+        assert num > 0; proxy
+
     # This is a factory method that produces request forwarders.
     # These are directly responsible for proxying an HTTP request
     # from the master server (frontend) to actual server (backend)
     # that does the job of handling the request. The forwarder is
     # also responsible for rotating (round-robin) servers queue!
-    makeForwarder: (queue, kind) -> (request, response) =>
+    makeForwarder: (queue, kind, select) -> (request, response) =>
         encrypted = request.connection.encrypted
         assert u = "#{request.url}".underline.yellow
         assert x = (encrypted and "HTTPS" or "HTTP").bold

    # refer to the `node-http-proxy` library for info on the proxy.
    # Also see `makeForward` method for details on load balancing!
    startupHttpsMaster: ->
        assert _.isArray @queueOfHttps ?= new Array
        assert _.isObject options = @resolveSslDetails()
        assert _.isString host = nconf.get "master:host"
        assert _.isNumber port = nconf.get "master:https"
        cmp = (exm) -> (srv) -> exm.uuid is srv.uuid or 0
        remove = (srv) => _.remove @queueOfHttps, cmp(srv)
        assert upgrade = @makeUpgraders @queueOfHttp, "https"
        assert registr = @makeRegistrar @queueOfHttps, "https"
        assert forward = @makeForwarder @queueOfHttps, "https"
        @secureProxy = https.createServer options, forward
        assert @secureProxy; @secureProxy.listen port, host
        @secureProxy.on "upgrade", -> upgrade arguments...

    # on one of the master servers. This is the functionality that
    # is required for WebSockets and other similar transports to
    # perform its operation correctly in a distributed environment.
    makeUpgraders: (queue, kind, select) -> (request, response) =>
        encrypted = request.connection.encrypted
        assert u = "#{request.url}".underline.yellow
        assert x = (encrypted and "HTTPS" or "HTTP").bold
