public void incCount(E data) {
        if (overallRoot == null) {
            overallRoot = new BSTNode(data);
            return;
        }
        
        BSTNode currentNode = overallRoot;
        while (true) {
        	// compare the new data with the data at the current node
        	int cmp = comparator.compare(data, currentNode.data);
        	if(cmp == 0) {            // a. Current node is a match
        		currentNode.count++;
        		return;
            }else if(cmp < 0) {       // b. Data goes left of current node
            	if(currentNode.left == null) {
            		currentNode.left = new BSTNode(data);
            		return;
                }	
            	currentNode = currentNode.left;
            }else{                    // c. Data goes right of current node
            	if(currentNode.right == null) {
            		currentNode.right = new BSTNode(data);
            		return;
                }
                currentNode = currentNode.right;
            }
        }
    }