chapter 3 - http://ruby.railstutorial.org