Exercise 2.42 in progress.