@Override
	public GTreeNode findSymbolTreeNode(SymbolNode key, boolean loadChildren,
			TaskMonitor taskMonitor) {

		String symbolName = key.getName();
		if (!symbolName.startsWith(baseName)) {
			// the given name does not start with the base name; it cannot be in this node
			return null;
		}

		// special case: all symbols in this group have the same name.
		if (moreNode != null) {
			if (!symbolName.equals(baseName)) {
				return null;
			}
			// The node either belongs to this node's children or it is represented by the
			// 'more' node
			for (GTreeNode child : children()) {
				SymbolTreeNode symbolTreeNode = (SymbolTreeNode) child;
				if (symbolTreeNode.getSymbol() == key.getSymbol()) {
					return child;
				}
			}

			return moreNode;
		}

		//
		// Note: The 'key' node used for searching will find us the parent node of the symbol
		//       that has changed if it is an org node (this is because the org node searches
		//       using the old name).  So, org nodes are different than normal nodes in that
		//       the old name will find the right parent, but not the actual current node, as
		//       it has a new name.  
		//
		return super.findSymbolTreeNode(key, loadChildren, taskMonitor);
	}
Inserts the given node into this organization node which is different than calling the
{@link #addNode(GTreeNode)} method, which is used during construction.  This method knows
how to recursively find the correct {@link OrganizationNode} node into which the given
node should be inserted.

@param newNode the node to insert.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/nodes/OrganizationNode.java