challenge 05: add tests and solution