public override IDeepCopyable CopyTo(IDeepCopyable other)
            {
                var dest = other as GeneElementComponent;

                if (dest == null)
                {
                    throw new ArgumentException("Can only copy to an object of the same type", "other");
                }

                base.CopyTo(dest);
                if (Type != null)
                {
                    dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy();
                }
                if (Element != null)
                {
                    dest.Element = (Hl7.Fhir.Model.Identifier)Element.DeepCopy();
                }
                if (Source != null)
                {
                    dest.Source = new List <Hl7.Fhir.Model.ResourceReference>(Source.DeepCopy());
                }
                return(dest);
            }