big restructuring and cleanup
another restructuring
Lots more cleanup and documentation