public virtual object Clone()
        {
            var elemGroup = new ElementGroup <TItem>();

            foreach (var elem in Elements)
            {
                elemGroup.Add((elem is ICloneable) ? (TItem)(elem as ICloneable).Clone() : elem);
            }
            return(new ElementRefGroup <TItem>(elemGroup));
        }