public synchronized String fullDig(int x, int y) {
        if (x < 0 || y < 0 || x >= size || y >= size
                || getCell(x, y).getState() != "untouched") {
            String board = createBoard();
            return board;
        } else {
            if (cellContainsBomb(x, y)) {
                setCellBomb(x, y, false);
                String boom = createBoom();
                // return Boom message - terminate client connection if need be
                fullDig(x, y);
                digAfterBoom(x, y);
                return boom;
            } else {
                setCellState(x, y, "dug");
                halfDig(x, y);
                String board = createBoard();
                return board;
            }
        }
    }