public List<String> addChild(List<String> nameList) {
        List<String> returnNames= new ArrayList<String>();

        List<Identifier> tempIdentifierList = children;
        Iterator<String> tempStringIterator = nameList.iterator();
        Identifier currentIdentifier = this;
        String currentName = null;
        boolean setFlag = false;
        while(tempStringIterator.hasNext()){
            setFlag = false;
            currentName = tempStringIterator.next();
            Iterator<Identifier> tempIdentifierIterator = tempIdentifierList.iterator();
            while(tempIdentifierIterator.hasNext()){
                Identifier checkedIdentifier = tempIdentifierIterator.next();
                if(currentName == checkedIdentifier.getName()){
                    tempIdentifierList = checkedIdentifier.children;
                    currentIdentifier = checkedIdentifier;
                    setFlag = true;
                    break;
                }
            }
            if (setFlag == false){
                String returnName = RandomStringUtils.randomAlphanumeric(8);
                returnNames.add(returnName);
                Identifier createdChild = new Identifier(currentName,returnName );
                createdChild.setParent(currentIdentifier);
                currentIdentifier.children.add(createdChild);
                tempIdentifierList = createdChild.children;
                currentIdentifier = createdChild;
            }
        }
    return returnNames;
    }