/// <summary>
        /// Constructor
        /// </summary>
        public BehavioralDirector()
        {
            laneAgent = new LaneAgent();
            navigation = new Navigator();
            tactical = new TacticalDirector();
            initialization = new InitializationComponent();
            CoreCommon.Navigation = navigation;

            // create and set blockage handler
            blockageHandler = new BlockageHandler();
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public Core()
        {
            // initialize turn signals
            TurnDecorators.Initialize();

            // set initial state
            CoreCommon.CorePlanningState = new StartUpState();

            // start a new behavioral layer
            this.Behavioral = new BehavioralDirector();

            // start new lane agent
            this.coreLaneAgent = new LaneAgent();

            // create execution stopwatch
            this.executionStopwatch = new Stopwatch();
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="laneAgent"></param>
 public StartupReasoning(LaneAgent laneAgent)
 {
     this.behavioralLaneAgent = laneAgent;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="laneAgent"></param>
 public StartupReasoning(LaneAgent laneAgent)
 {
     this.behavioralLaneAgent = laneAgent;
 }