Add tests and refactoring