public void addNode(String data) {
        //TODO check to what tree branch add new node -- needs getHeight
        if (childNodes.size() < MAX_CHILDREN_COUNT) {
            childNodes.add(new HierarchyTreeNode(data, this));
        } else {
            int[] heights = new int[childNodes.size()];
            for (int i = 0; i < childNodes.size(); i++) {
                heights[i] = childNodes.get(i).getHeight();
            }
            childNodes.get(getShortestNodeIndex(heights)).addNode(data);
        }
    }