before making ISorterStage generic