More refactoring.  Almost ready for release.