All of chapter 1 implemented!