Break out base provider registeration for easier override.
Merge branch '4.0'