Add tests and refactoring.