Lots of refactoring.  Looking a bit better now.  Mostly UNTESTED!  #22