"Provider" class.

* Providers inherits from Provider
* Expensive external HTTP requests are memoized using memoization