Use sealed trait for output options