exercise 2.9.