public void paint(Graphics g, TicTacToePlayer playerObj) {
        Graphics2D g2 = (Graphics2D) g;

        Font scoreFont = new Font("monospaced", Font.BOLD, 18);
        Font numberFont = new Font("consolas", Font.PLAIN, 18);
        Font gameOverFont = new Font("monospaced", Font.BOLD, 25);

        Color backgroundColor = new Color(129, 133, 193);
        Color tileColor = new Color(130, 194, 189);
        Color winColor = new Color(134, 216, 129);


        cleanUpIcons(g2);

        createBackground(g, backgroundColor);


        //load board
        for (int y = 0; y < grid.length; y++) {
            for (int x = 0; x < grid[y].length; x++) {
                //box - shadow
                g.setColor(Color.black);
                g.fillRect(x * (tileWidth + 5), y * (tileHeight + 5), tileWidth + 2, tileHeight + 2);
                highlightWin(g, tileColor, x, y);

                if (gameOver) {
                    if (this.whoWin(1)) {
                        if (grid2[y][x] == 1) {
                            highlightWin(g, winColor, x, y);
                        }
                    } else if (this.whoWin(2)) {
                        if (grid2[y][x] == 2) {
                            highlightWin(g, winColor, x, y);
                        }
                    }
                }
            }
        }// end of main for loop
        drawScoreBox(g2, backgroundColor, g, scoreFont, numberFont, playerObj);

        //turn box
        if (!gameOver) {
            drawTurnBox(g2, backgroundColor, g);
            drawTurn(g2, playerObj, g);
        }
        if (gameOver) {
            displayGameOver(g, gameOverFont); //displays "Game Over" above buttons 
            drawNewGameButton(g, scoreFont, g2, backgroundColor, winColor); //new game button
        }

        //clear game button
        drawClearGameButton(g, scoreFont, backgroundColor, g2);

    }