@Override
	protected void fixupProgramTree(String suffix) throws Exception {
		super.fixupProgramTree(" - " + provider.getAbsolutePath());

		// Our program tree must account for Add To Program's happening, so we want to put each
		// added program into its own subfolder.  We tag these subfolders with ".extract" so we
		// can keep all of these program subfolders at the top-level of the tree.
		ProgramModule rootModule = listing.getDefaultRootModule();
		String tag = ".extract";
		String newName = provider.getAbsolutePath() + tag;
		ProgramModule newRootModule = rootModule.createModule(newName);
		for (Group group : rootModule.getChildren()) {
			if (!group.getName().endsWith(tag)) {
				newRootModule.reparent(group.getName(), rootModule);
			}
		}
	}
Builds up a {@link Program} of Mach-O components extracted from a Mach-O container

@param program The {@link Program} to build up.
@param provider The {@link ByteProvider} that contains the Mach-O's bytes.
@param fileBytes Where the Mach-O's bytes came from.
@param loadInto True if the Mach-O is being loaded into an existing program; otherwise, false
@param log The log.
@param monitor A cancelable task monitor.
@throws Exception if a problem occurs.
Ghidra/Features/FileFormats/src/main/java/ghidra/app/util/opinion/MachoExtractProgramBuilder.java