move #do_request into Request.
make it easier to override workflow in Request (which shouldn't be necessary anyway).