Did rewrite, added test suite, added lots of new features.