exercise 7.6.3 complete