added wither and looking to rewrite case class