Cleaning up tests, and making classes easier to test.
Code formatting changes: readability change, rather than functional
change.
Allow the ability to override configuration source providers.
Added additional tests, and fixed a few bugs.