Exercise 1.29
Until exercise 1.32
Until exercise 1.33