This is all fine but we don't pass this method a service catalog. Perhaps we should be sending one down to the request methods? Seems one way to avoid magic maybe.