polymorphism tutorial from thoughtbot blog: http://robots.thoughtbot.com/back-to-basics-polymorphism-and-ruby