public boolean remove(Object o) {
        if (Entry.elementName.equals(o)) {
            for (Entry entry : treeList) {
                if (entry.equals(o)) {
                    if (!entry.availableToAddRightChildren) {
                        treeList.remove(entry.rightChild.elementName);
                    }
                    if (!entry.availableToAddLeftChildren) {
                        treeList.remove(entry.leftChild.elementName);
                    }
                }
            }
            treeList.remove(o);
            return true;
        } else {
            throw new UnsupportedOperationException();
        }
    }