request object refactored