Much needed refactoring of class hierarchy
Prep for v1.2.0