major revision, simplified base classes, functionality is more unitized to promote better restraints and brevity