public bool CheckMemberTypeCompatability( AbstractCrystallonEntity pEntity )
 {
     // NO CURRENT MEMBER TYPE
     if (MemberType == null) {
         if ( typeof(GroupCrystallonEntity).IsAssignableFrom(pEntity.GetType()) ) { // ------- HANDLE GROUP-TYPE OBJECTS
             MemberType = (pEntity as GroupCrystallonEntity).MemberType;
         } else if ( typeof(CardCrystallonEntity).IsAssignableFrom(pEntity.GetType()) ) { // - HANDLE CARD-TYPE OBJECTS
             MemberType = typeof(CardCrystallonEntity);
         }
     } else {
         Type t = null;
         if ( typeof(GroupCrystallonEntity).IsAssignableFrom(pEntity.GetType()) ) { // ------- HANDLE GROUP-TYPE OBJECTS
             t = (pEntity as GroupCrystallonEntity).MemberType;
         } else if ( typeof(CardCrystallonEntity).IsAssignableFrom(pEntity.GetType()) ) { // - HANDLE CARD-TYPE OBJECTS
             t = typeof(CardCrystallonEntity);
         }
         return this.MemberType.IsAssignableFrom(t);
     }
     return true;
 }