refactoring request-architecture