First version, developed with TDD