Excercise 5.6.1
Excercise 5.6.2
Excercise 5.6.3