I don't remember myself, but it makes things more deterministic. The abstraction also makes it easier to modify `ConversationMetricSet` later if necessary.