Completed up to Exercise 1.3