//public interface:
        public void LandAtPositionTarget(object controller)
        {
            landAtTarget = true;
            users.Add(controller);

            predictor.users.Add(this);
            vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module

            deployedGears = false;

            // Create a new parachute plan
            parachutePlan = new ParachutePlan(this);
            parachutePlan.StartPlanning();

            if (orbit.PeA < 0)
            {
                setStep(new Landing.CourseCorrection(core));
            }
            else if (UseLowDeorbitStrategy())
            {
                setStep(new Landing.PlaneChange(core));
            }
            else
            {
                setStep(new Landing.DeorbitBurn(core));
            }
        }
        //public interface:
        public void LandAtPositionTarget(object controller)
        {
            landAtTarget = true;
            users.Add(controller);

            predictor.users.Add(this);
            vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module

            deployedGears = false;

            // Create a new parachute plan
            parachutePlan = new ParachutePlan(this);
            parachutePlan.StartPlanning();

            bool useTrajectoriesAtmo = TrajectoriesConnector.isLoadedTrajectories && mainBody.atmosphere;

            if (useTrajectoriesAtmo && orbit.PeA < mainBody.atmosphereDepth)
            {
                setStep(new Landing.AtmosphericCorrection(core));
            }
            else if (orbit.PeA < 0)
            {
                setStep(new Landing.CourseCorrection(core));
            }
            else if (UseLowDeorbitStrategy())
            {
                setStep(new Landing.PlaneChange(core));
            }
            else if (useTrajectoriesAtmo)
            {
                setStep(new Landing.AtmosphericDeorbit(core));
            }
            else
            {
                setStep(new Landing.DeorbitBurn(core));
            }
        }
        //public interface:
        public void LandAtPositionTarget(object controller)
        {
            landAtTarget = true;
            users.Add(controller);

            predictor.users.Add(this);
            vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module

            deployedGears = false;

            // Create a new parachute plan
            parachutePlan = new ParachutePlan(this);
            parachutePlan.StartPlanning();

            if (orbit.PeA < 0)
                setStep(new Landing.CourseCorrection(core));
            else if (UseLowDeorbitStrategy())
                setStep(new Landing.PlaneChange(core));
            else
                setStep(new Landing.DeorbitBurn(core));
        }