exercise 2.23 completed