request object refactor