Exercise 5.6.1: COMPLETED
Exercise 5.6.2: COMPLETED
Exercise 5.6.3: COMPLETED