chapter 3 of hartl's tutorial