simplified do_request method