exercise 2.3 complete