major refactoring, ripping out bad code, improving the tests, etc.