Exercise 2.7 full