with help from J. Hollar we now have a reasonable first crack at an abstract base class with decent factorizations
remove things we do not need yet