IProvider interface and ComponentBase constraint on constructor.
Enhancements to support providers.