private void ReconstructFastDestinationArray()
 {
     // this technique is to avoid locking FastDestinationArray
     DestinationInfo[] TempFixedArray = new DestinationInfo[Destinations.Count];
     Destinations.CopyTo(TempFixedArray);
     FastDestinationArray = TempFixedArray;
 }