         noSave = "the session has not save function"
         noSession = "container has no session object"
         message = "Persisted %s entity against session"
-        isVanillaSession = _.isObject container.cookie
-        container = session: container if isVanillaSession
+        isVanSession = try _.isObject container.cookie
+        container = session: container if isVanSession
+        external = @constructor.ACCESS_SESSION_SYMBOL
         symbol = @constructor.ACCESS_CONTAINER_SYMBOL
         assert session = container?.session, noSession
         assert not _.isEmpty(symbol), "no access symbol"
-        assert _.isObject(entity), "malformed entity"
-        surrogate = _.unique @constructor.hibernation()
+        assert not _.isEmpty(external), "no session symbol"
+        assert (try _.isObject(entity)), "malformed entity"
+        surrogate = try _.unique @constructor.hibernation()
         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)

    # If the entity or session does not exist, nothing gets defined.
    # Please refer to source code, as it contains important details.
    dereference: (container, callback) ->
        {series, apply} = async or require "async"
        key = @constructor.ACCESS_CONTAINER_SYMBOL
        assert not _.isEmpty(key), "no access symbol"
        assert sid = "x-authenticate-entity" # external
        isVanillaSession = _.isObject container.cookie
        container = session: container if isVanillaSession
        return callback() unless session = container.session

        @hibernateEntity entity, (error, content) =>
            return callback error, undefined if error
            assert not _.isEmpty(content), "no content"
            try session[external.toString()] = content
            assert _.isFunction(session.save), noSave
            session.cookie.maxAge = 2628000000 if rme
            session.random = _.random 0, 1, yes # force
