refactor request_class and new_request
WIP to rebase