code: function initChild(child, opts, innerHTML, parent) {
        var tag = createTag(child, opts, innerHTML);
        var tagName = opts.tagName || getName(opts.root, true);
        var ptag = getImmediateCustomParent(parent);
        // fix for the parent attribute in the looped elements
        define(tag, 'parent', ptag);
        // store the real parent tag
        // in some cases this could be different from the custom parent tag
        // for example in nested loops
        tag.__.parent = parent;
  
        // add this tag to the custom parent tag
        arrayishAdd(ptag.tags, tagName, tag);
  
        // and also to the real parent tag
        if (ptag !== parent)
          { arrayishAdd(parent.tags, tagName, tag); }
  
        return tag
      }
docs: Create a new child tag including it correctly into its parent
  @param   { Object } child - child tag implementation
  @param   { Object } opts - tag options containing the DOM node where the tag will be mounted
  @param   { String } innerHTML - inner html of the child node
  @param   { Object } parent - instance of the parent tag including the child custom tag
  @returns { Object } instance of the new child tag just created