Finish Exercise 10.5.1
Finish Exercise 10.5.2
Finish Exercise 10.5.3