Finish Exercise 5.6.1
Finish Exercise 5.6.2
Finish Exercise 5.6.3
Finish Exercise 5.6.4