exercise 3.5 solution