Refactor the perform_request method is the onlye thing left to complete the basic structure