added support to specify service provider