private void renderBoard(Graphics2D g, List<List<Card>> gameBoard) {
        double x = X_BOARD_OFFSET + CARD_WIDTH * 2 + CARD_X_GAP * 2;
        double y = Y_BOARD_OFFSET + CARD_HEIGHT / 2;

        if (gameBoard.size() == 0) {
            //Game not inited yet
            return;
        }

        for (int i = 0; i < gameBoard.size(); i++) {
            List<Card> cards = gameBoard.get(i);
            if (i != 0) {
                if (i % 4 == 0) {
                    x = X_BOARD_OFFSET + CARD_WIDTH * 2 + CARD_X_GAP * 2;
                    y += CARD_Y_GAP + CARD_HEIGHT;

                } else {
                    x += CARD_WIDTH + CARD_X_GAP;
                }
            }

            if (cards.size() > 0) {
                g.setColor(Color.white);
                int size = cards.size();
                g.drawString(size + (size == 1 ? " card" : " cards"), (int) x, (int) y - 1);
                renderCard(cards.get(cards.size() - 1), g, x, y);
            }

        }
    }