Exercise 3 solution should not reimplement solution from exercise 2