seal the case class and make method private