code: func NewApplicationOrgGroup(conf *genesisconfig.Organization) (*cb.ConfigGroup, error) {
  	mspConfig, err := msp.GetVerifyingMspConfig(conf.MSPDir, conf.ID, conf.MSPType)
  	if err != nil {
  		return nil, errors.Wrapf(err, "1 - Error loading MSP configuration for org %s", conf.Name)
  	}
  
  	applicationOrgGroup := cb.NewConfigGroup()
  	if len(conf.Policies) == 0 {
  		logger.Warningf("Default policy emission is deprecated, please include policy specifications for the application org group %s in configtx.yaml", conf.Name)
  		addSignaturePolicyDefaults(applicationOrgGroup, conf.ID, conf.AdminPrincipal != genesisconfig.AdminRoleAdminPrincipal)
  	} else {
  		if err := addPolicies(applicationOrgGroup, conf.Policies, channelconfig.AdminsPolicyKey); err != nil {
  			return nil, errors.Wrapf(err, "error adding policies to application org group %s", conf.Name)
  		}
  	}
  	addValue(applicationOrgGroup, channelconfig.MSPValue(mspConfig), channelconfig.AdminsPolicyKey)
  
  	var anchorProtos []*pb.AnchorPeer
  	for _, anchorPeer := range conf.AnchorPeers {
  		anchorProtos = append(anchorProtos, &pb.AnchorPeer{
  			Host: anchorPeer.Host,
  			Port: int32(anchorPeer.Port),
  		})
  	}
  
  	// Avoid adding an unnecessary anchor peers element when one is not required.  This helps
  	// prevent a delta from the orderer system channel when computing more complex channel
  	// creation transactions
  	if len(anchorProtos) > 0 {
  		addValue(applicationOrgGroup, channelconfig.AnchorPeersValue(anchorProtos), channelconfig.AdminsPolicyKey)
  	}
  
  	applicationOrgGroup.ModPolicy = channelconfig.AdminsPolicyKey
  	return applicationOrgGroup, nil
  }
docs: // NewApplicationOrgGroup returns an application org component of the channel configuration.  It defines the crypto material for the organization
  // (its MSP) as well as its anchor peers for use by the gossip network.  It sets the mod_policy of all elements to "Admins".