Implemented exercise 2 of chapter 3