added support for provider registering