code: func (b *Factory) CreateElement(recorded, local, remote map[string]interface{}) (apply.Element, error) {
  	// Create an Item from the 3 values.  Use empty name for field
  	visitor := &ElementBuildingVisitor{b.Resources}
  
  	gvk, err := getCommonGroupVersionKind(recorded, local, remote)
  	if err != nil {
  		return nil, err
  	}
  
  	// Get the openapi object metadata
  	s := visitor.resources.LookupResource(gvk)
  	oapiKind, err := getKind(s)
  	if err != nil {
  		return nil, err
  	}
  
  	data := apply.NewRawElementData(recorded, local, remote)
  	fieldName := ""
  	item, err := visitor.getItem(oapiKind, fieldName, data)
  	if err != nil {
  		return nil, err
  	}
  
  	// Collate each field of the item into a combined Element
  	return item.CreateElement(visitor)
  }
docs: // CreateElement returns an Element by collating the recorded, local and remote field values