support different request processing model