/// <summary> Creates a new, empty repetition of the underlying Group and sets up
        /// Pointers to it's components.
        /// </summary>
        /// <thows>  HL7Exception if there is already 1 rep and group is non-repeating </thows>
        private void  makeChildren()
        {
            //set up pointers for children ...
            System.String[] childNames = message.Names;
            this.children = new NuGenPointer[childNames.Length];
            for (int i = 0; i < childNames.Length; i++)
            {
                NuGenPointer p;
                //make new SegmentPointer or GroupPointer depending on whether child is a Group ...
                System.Type childClass = message.getClass(childNames[i]);
                if (typeof(Group).IsAssignableFrom(childClass))
                {
                    p = new NuGenGroupPointer(this.parser, message, i, this.encodingChars);
                }
                else
                {
                    p = new NuGenSegmentPointer(this.parser, message, i, encodingChars);
                }

                this.children[i] = p;
            }
        }