Added a simple new interface to deal with things which wish to provide
functions.
Update to interface to make it a service not just a provider