working on a service provider implementation