CalcPlan should be functional, instead of a Manager method