exercise 2.27 completed