public final void addRow(String row) {
        if (rowCount < dimension && row.length() == dimension) {
            char[] values = row.toCharArray();
            Entry[] tempRow = new Entry[dimension];
            int tCountTemp = tCount;
            boolean containsEmpty = false;
            for (int i = 0; i < dimension; i++) {
                Entry current = Entry.getEntry(values[i]);
                if (current == Entry.T) {
                    tCountTemp++;
                    if (tCountTemp > MAX_T_COUNT) {
                        throw new IllegalArgumentException("Number of T's greater than allowed max: " + MAX_T_COUNT);
                    }
                } else if (current == Entry.EMPTY) {
                    containsEmpty = true;
                }

                tempRow[i] = current;
            }
            store[rowCount] = tempRow;
            rowCount++;
            tCount = tCountTemp;
            hasEmpty = hasEmpty || containsEmpty;
        } else {
            throw new IllegalArgumentException("Requested row cannot fit in a board of dimension " + dimension);
        }
    }