Cleaner validation
Better names for arguments
Removed uneeded code
Removed a bunch of old code
improving unit tests...
Unit tests are discrete and in reasonable organization
Fixed tests outputting too much
All tests pass