How does a case class differ from a normal class?