task 04: add tests and solution