Add tests, change EVERYTHING