/// <summary>
 /// A roaming manipulator is not part of a <see cref="ManipulatorManagerBase"/> but
 /// is added to whichever is active
 /// </summary>
 /// <remarks>
 /// ATTN: !!! Incomplete roaming manipulators implementation: !!!
 /// - Only those events used by <see cref="ChurchManipulator"/> are actually called
 /// - New roaming manipulators are not automatically persisted
 /// - etc..
 /// </remarks>
 private void ToggleRoamingManipulator(ManipulatorBase manipulator)
 {
     Debug.Assert(manipulator is ChurchManipulator, "See remark above. RoamingManipulators only implemented for the Church.");
     if (_roaming.Contains(manipulator))
     {
         _roaming.Remove(manipulator);
     }
     else
     {
         _roaming.Add(manipulator);
     }
 }
 /// <summary>
 /// A roaming manipulator is not part of a <see cref="ManipulatorManagerBase"/> but
 /// is added to whichever is active
 /// </summary>
 /// <remarks>
 /// ATTN: !!! Incomplete roaming manipulators implementation: !!!
 /// - Only those events used by <see cref="ChurchManipulator"/> are actually called
 /// - New roaming manipulators are not automatically persisted 
 /// - etc..
 /// </remarks>
 private void ToggleRoamingManipulator(ManipulatorBase manipulator)
 {
     Debug.Assert(manipulator is ChurchManipulator, "See remark above. RoamingManipulators only implemented for the Church.");
     if (_roaming.Contains(manipulator))
     {
         _roaming.Remove(manipulator);
     }
     else
     {
         _roaming.Add(manipulator);
     }
 }