6 Case classes and pattern matching: http://www.scala-lang.org/docu/files/ScalaTutorial.pdf