Added EnvironmentService with a couple helper functions that use an Environment struct

MakeRequest no longer Do's the request, this will allow our other functions a chance to modify the request before its made, we probably want to rename this to NewRequest