by http://guides.rubyonrails.org/getting_started.html