         assert _.isFunction i = Marshal.deserialize
         uplinking = "Uplink %s at #{@location}, nsp=%s"
         ack = "Ack an uplink %s at #{@location}, nsp=%s"
+        responder = (socket, mangled, callback) -> ->
+            return c(o(arguments)...) if c = callback
+            id = socket.sacks = (socket.sacks ?= 0) + 1
+            packet = type: "ack", name: mangled, ack: "data"
+            _.extend packet, ackId: id, args: o(arguments)
+            assert packet.ackId; socket.packet packet
         _.forIn this, (value, reference, context) =>
             return unless reference of (@uplinks or {})
             assert mangled = "#{@location}/#{reference}"

            @socket.on mangled, (args..., callback) =>
                args.push c unless _.isFunction c = callback
                callback = null unless _.isFunction callback
                console.log uplinking, reference, nsp
                assert args; return value i(args)..., =>
                    return c(o(arguments)...) if c = callback
                    id = @socket.sacks = (@socket.sacks ?= 0) + 1
                    packet = type: "ack", name: mangled, ack: "data"
                    _.extend packet, ackId: id, args: o(arguments)
                    assert packet.ackId; @socket.packet packet

    # This is a complementary part of the bilateral implementation.
    # It is invoked to produce a server side agent that is aware of

        notify = "incorrect callback for the uplink"
        assert _.isFunction o = Marshal.serialize
        assert _.isFunction i = Marshal.deserialize
        uploader = (socket, callback, ptr) -> ->
            predicate = (ack, key) -> ack is ptr()
            key = _.findKey socket.acks, predicate
            assert key, "ack"; delete socket.acks[key]
            logger.debug responded.cyan, name.bold
            return callback.apply this, i(arguments)
        return (parameters..., callback=(->)) =>
            assert _.isFunction(callback), notify
            assert mangled = "#{@location()}/#{name}"
            assert binder = socket.binder, noBinder
            mangled += "/#{nsp}" if nsp = binder.nsp
            logger.debug uplinking.cyan, name.bold
            ack = uploader socket, callback, -> ack
            socket.emit mangled, o(parameters)..., ack
