Now that we have a couple of provider implementations out, it seems fairly obvious to me that we should break out the code for fetching external data into a separate class and inject that into the provider classes. Bonus points if we can use something already written.