exercise 2.8.