It is just to separate concepts, using a custom http.Client, adding timeouts and easing modifying requests so they are more legible. Blocks #3. Could be useful in the future for adding rate limiting, handling errors, etc.