docs: protected Model createCleanPom( Model effectivePom )
      {
          Model cleanPom = new Model();
  
          cleanPom.setGroupId( effectivePom.getGroupId() );
          cleanPom.setArtifactId( effectivePom.getArtifactId() );
          cleanPom.setVersion( effectivePom.getVersion() );
          cleanPom.setPackaging( effectivePom.getPackaging() );
          cleanPom.setLicenses( effectivePom.getLicenses() );
          // fixed to 4.0.0 forever :)
          cleanPom.setModelVersion( "4.0.0" );
  
          // plugins with extensions must stay
          Build build = effectivePom.getBuild();
          if ( build != null )
          {
              for ( Plugin plugin : build.getPlugins() )
              {
                  if ( plugin.isExtensions() )
                  {
                      Build cleanBuild = cleanPom.getBuild();
                      if ( cleanBuild == null )
                      {
                          cleanBuild = new Build();
                          cleanPom.setBuild( cleanBuild );
                      }
                      Plugin cleanPlugin = new Plugin();
                      cleanPlugin.setGroupId( plugin.getGroupId() );
                      cleanPlugin.setArtifactId( plugin.getArtifactId() );
                      cleanPlugin.setVersion( plugin.getVersion() );
                      cleanPlugin.setExtensions( true );
                      cleanBuild.addPlugin( cleanPlugin );
                  }
              }
          }
  
          // transform profiles...
          for ( Profile profile : effectivePom.getProfiles() )
          {
              if ( !isEmbedBuildProfileDependencies() || !isBuildTimeDriven( profile.getActivation() ) )
              {
                  if ( !isEmpty( profile.getDependencies() ) || !isEmpty( profile.getRepositories() ) )
                  {
                      Profile strippedProfile = new Profile();
                      strippedProfile.setId( profile.getId() );
                      strippedProfile.setActivation( profile.getActivation() );
                      strippedProfile.setDependencies( profile.getDependencies() );
                      strippedProfile.setRepositories( profile.getRepositories() );
                      cleanPom.addProfile( strippedProfile );
                  }
              }
          }
  
          // transform dependencies...
          List<Dependency> dependencies = createFlattenedDependencies( effectivePom );
          cleanPom.setDependencies( dependencies );
          return cleanPom;
      }