introduce RequestContext