exercise 2.12 completed