use case class instead