public Facility Clone() { return(new Facility() { MovesMade = MovesMade, //Previous = new List<State>(Previous.Select(p => p.Clone())), Current = Current.Clone(), Floors = new List <Floor>(Floors.Select(f => f.Clone())), Elevator = Elevator.Clone() }); }