Finished chapter 3 with tests