do_request refacoring