redoing chapter 2 hartl rails