challenge 02: add tests and solution