Finished chapter 5. Functional Programming