This could probably be a sealed trait instead since it has no methods