Slight constructor clean up

This allows more complex service objects to be passed in, should
further options be defined. It certainly allows for error handlers and caching to be defined.