/// <summary>
        /// Reset values held over time in all planners
        /// </summary>
        public void ResetAll()
        {
            taskReasoning.Reset();

            if (this.opposingReasoning != null)
            {
                opposingReasoning.Reset();
            }

            if (forwardReasoning != null)
            {
                forwardReasoning.Reset();
            }

            if (leftLateralReasoning != null)
            {
                leftLateralReasoning.Reset();
            }

            if (rightLateralReasoning != null)
            {
                rightLateralReasoning.Reset();
            }

            if (laneChangeReasoning != null)
            {
                laneChangeReasoning.Reset();
            }

            if (roadMonitor != null)
            {
                roadMonitor.Reset();
            }
        }