private IHasBits _hasBits; //uses backing field to wrap
        #endregion

        #region Ctor
        /// <summary>
        ///
        /// </summary>
        /// <param name="decorated"></param>
        /// <param name="hasBits">if null will default to 32bit BitArrayHasBits instance</param>
        public HasBitsIHasIdDecoration(IHasId decorated, IHasBits hasBits = null)
            : base(decorated)
        {
            if (hasBits != null)
            {
                this._hasBits = hasBits;
            }
            else
            {
                this._hasBits = NaturalBitArrayHasBits.New(new BitArray(32));
            }
        }
 protected HasBitsIHasIdDecoration(SerializationInfo info, StreamingContext context)
     : base(info, context)
 {
     this._hasBits = NaturalBitArrayHasBits.New(new BitArray(info.GetValue("_hasBits", typeof(bool[])) as bool[]));
 }