         mkp = (prop) -> define service, "redis", prop
         dap = -> mkp arguments...; next(); sig(); this
         dap enumerable: yes, configurable: no, get: ->
-            redis = try @kernel.redis or undefined
-            noRedis = "a kernel has no Redis client"
+            redis = try envelope.redis or undefined
+            noRedis = "an envelope has no Redis client"
             identify = try this.constructor.identify()
             try logger.debug ack, identify.underline
             assert _.isObject(redis), noRedis; redis

    # Once inherited from, the inheritee is not abstract anymore.
    @abstract yes

    # A hook that will be called prior to unregistering the service
    # implementation. Please refer to this prototype signature for
    # information on the parameters it accepts. Beware, this hook
    # is asynchronously wired in, so consult with `async` package.
    # Please be sure invoke the `next` arg to proceed, if relevant.
    unregister: (kernel, router, next) ->
        return next() unless _.isObject kernel.redis
        {host, port, options} = kernel.redis or Object()
        message = "Disconnecting from Redis at %s:%s"
        logger.info message.toString().cyan, host, port
        try @emit "redis-gone", kernel.redis, kernel
        try kernel.emit? "redis-gone", kernel.redis
        try kernel.redis.end(); delete kernel.redis
        next.call this, undefined; return this

    # A hook that will be called prior to registering the service

    # information on the parameters it accepts. Beware, this hook
    # is asynchronously wired in, so consult with `async` package.
    # Please be sure invoke the `next` arg to proceed, if relevant.
    # This implementation sets the Redis connection access handle.
    instance: (kernel, service, next) ->
        @constructor.REDIS_ENVELOPE ?= -> kernel
        envelope = this.constructor.REDIS_ENVELOPE
        envelope = try envelope.apply this, arguments
        return next undefined if _.has service, "redis"
        ack = "Acquire Redis client handle in %s".grey
        sig = => this.emit "redis-ready", @redis or null
