Finish exercise 10.5.1, 10.5.2, 10.5.3
Finish Excercise 10.5.4, 10.5.5, 10.5.6