public SimulationStarter(GUIMainWindow gui, PokerGameType gameType, int numberOfStartingHands,
            int numberOfSimulations, List<AbstractStartingHand> startingHands, FiveCardBoard board) {
        this.gui = gui;
        this.gameType = gameType;
        this.numberOfStartingHands = numberOfStartingHands;
        this.numberOfSimulations = numberOfSimulations;
        this.drawnCards = new HashMap<Card, Component>();
        this.selectedCards = new ArrayList<Card>();
        this.selectedCardLabels = new ArrayList<Component>();
        this.indexForCard = new HashMap<Card, Integer>();

        this.showMinorErrorDialogs = gui.getSettings().isShowMinorErrorDialogs();

        this.startingHands = new AbstractStartingHand[startingHands.size()];
        for (int i = 0; i < this.startingHands.length; i++) {
            this.startingHands[i] = startingHands.get(i);
        }

        cardLabelsInStartingHands = new List[numberOfStartingHands];
        for (int i = 0; i < cardLabelsInStartingHands.length; i++) {
            cardLabelsInStartingHands[i] = new ArrayList<Component>();
        }

        if (gameType.isCommunityCardGame()) {
            this.board = board;
            this.cardLabelsInBoard = new ArrayList<Component>();
        }

        this.isRerun = true;
    }