Refactor Part II: making OCurve independent from SimuState.