public Mission DeepCopy()
        {
            Mission mission = (Mission)MemberwiseClone();

            mission.Name = String.Copy(Name);

            var pl = PhaseList.Select(mp => new MissionPhase
            {
                ID = String.Copy(mp.ID), Name = String.Copy(mp.Name), VisibleTimeExtent = new TimeExtent(mp.VisibleTimeExtent.Start, mp.VisibleTimeExtent.End)
            }).ToList();

            mission.PhaseList = pl;

            return(mission);
        }