write tests before the actual production code