split service provider to two, unable to register package if we're running the service provider as deferred.

Signed-off-by: crynobone <crynobone@gmail.com>