Planner: Refactored to use comparer,  some staff moved into constructor