introduce ContextManager