Finished Exercise 20 of the book.