added a generic name-value pair case class