private void startGame() {
		//Game starts! 
		stillInGame = new HashMap<Integer,Player>();
		for (int i = 0; i < players.size(); i++) {
			stillInGame.put(i, players.get(i));
		}
		
		//Pick dealer
		int lastDealerPosition = 0;
		if (dealer != null) {
			lastDealerPosition = getPositionFor(dealer);
			dealer = null;
		}
		
		dealer = getNextValidPlayer(lastDealerPosition+1);
		
		//null out other variables
		tableCards = new ArrayList<Card>();
		lastAction = null;
		pot = 0;
		deck = Card.generateDeck();
				
		//Dealers left goes first
		currentActor = getNextValidPlayer(lastDealerPosition+2);
		
		//Start with betting
		state = GameState.ANTE;
		
		if (!useAnte) advanceState();
		
		messageStateChanged();
	}