public void paintComponent(Graphics g) {
        super.paintComponent(g);
        GamePiece[][] gameBoard = this.gameModel.getBoard().getBoardArray();
    	drawBackground(g);
        for (int r=0; r<ROWS; r++) {
            for (int c=0; c<COLS; c++) {
            	int x = c * CELL_SIZE+25;
            	int y = r * CELL_SIZE+25;

				if(gameBoard[r][c] == null || gameBoard[r][c].getID() == -1){
					continue;
            	}
				
				else if(gameBoard[r][c].isMoving()){
					Movement mv = gameBoard[r][c].getMv();
					if(!mv.update()){
						g.setColor(gameBoard[r][c].getColor());
	            		g.fillOval((int)mv.getCurX()+10, (int)mv.getCurY()+10, CELL_SIZE-20, CELL_SIZE-20);
					}
					else{
						this.gameModel.getBoard().setPiece(r, c, gameBoard[r][c]);
						gameBoard[r][c].setMoving(false);
						this.gameModel.setMoving(false);
					}
				}
				
				else if(gameBoard[r][c].getSelected()){
            		g.setColor(gameBoard[r][c].getColor());
            		g.fillOval(x+10, y+10, CELL_SIZE-20, CELL_SIZE-20);
            		
            		Glow gl = gameBoard[r][c].getGl();
            		gl.update();
            		int newx = (int) gl.getX();
            		int newy = (int) gl.getY();
            		
            		g.setColor(gl.getColor());
            		g.fillOval(x+newx, y+newy, CELL_SIZE-(newx*2), CELL_SIZE-(newy*2));
            			
				}
				
				else{
					g.setColor(gameBoard[r][c].getColor());
        			g.fillOval(x+10, y+10, CELL_SIZE-20, CELL_SIZE-20);
				}
            }
        }
	}