Unit Integration Tests & remaining customChange refactorings

Hi Leo,

I went ahead and rolled out the rest of changes based on previous spike you PR'ed. I also introduced very basic unit-integration tests. I took the liberty of renaming some classes to be more consistent and descriptive. You welcome to rename the rest like crazy!