         return callback() unless session = container.session
         return callback() unless content = session[sid]
         delete container[key] if _.has container, key
-        @ressurectEntity ?= (xc, xn) -> xn null, xc
+        surrogate = _.unique @constructor.ressurection()
+        functions = (o.implement.bind @ for o in surrogate)
+        boxd = (obj) -> (apply fn, obj for fn in functions)
+        fasn = (o, c) -> series boxd(o), (e, r) -> c(e, o)
+        @ressurectEntity ?= (c, fn) -> fasn _.clone(c), fn
         @ressurectEntity content, (error, entity) =>
             format = (m) -> "ressurection error: #{m}"
             masked = format error.message if error

    # the implementing services, in case if rename is necessary.
    @ACCESS_ENTITY_SYMBOL = "account"

    # Dereference the potentially existent entity from the session
    # into the supplied container, where the session is residing. It
    # basically retrieves the hibernated entity, ressurects it and
    # defined the appropriate getter property on supplied container.
    # If the entity or session does not exist, nothing gets defined.
    dereference: (container, callback) ->
        assert key = @constructor.ACCESS_ENTITY_SYMBOL
        assert sid = "x-authenticate-entity" # external
        isVanillaSession = _.isObject container.cookie

        success = "Got valid ignition entity at #{id}"
        set = "Set %s to be access entity reference"
        logger.debug atm, try id.toString().underline
        this.dereference request, (error, supply) =>
            @emit "access-entity-ignition", arguments...
            s = succeeded = _.isObject request[symbol]
            logger.debug success.yellow if succeeded
