It would be nice to have an abstraction layer so that consumers of this library can mock out instances of the library in unit tests!