updated: Exercise 7.3