public synchronized void deal(CardPanel panel) {
        hasDealt = false;
        //canAddToDeckFromBoard = false;
        //Let them initiate dealing
        panel.storeMessage(new RenderMessage("Hit Enter/click the pack to start dealing", false));
        repaintWhileDealing(panel);

        waitForNextDealConfirmation();


        //Deal to all 12 piles accounting for undos
        while (pack.size() > 13) {
            System.out.println(pack.size());
            DealMove dealMove = new DealMove();
            dealMove.makeMove(this, panel);
            history.push(dealMove);

        }
        System.out.println(pack.size());
        repaintWhileDealing(panel);
        hasDealt = true;
    }