protected Game(String cfgPath) {
		try {
			introduceParameterName(getClass(), "TIME_LIMIT");
			setParameter("TIME_LIMIT", "0");  //infinite turn time
			if(cfgPath == null) {
				board = loadConfigFile(null);
				if(board == null) //if a Board was not created by loadConfigFile when you passed loadConfigFile 'null'
					IllegalMessageException.badInput("Board was not Loaded");
				board.setGame(this);
			}
			else {
				BufferedReader in = new BufferedReader(new InputStreamReader(Game.class.getResourceAsStream(cfgPath)));
				board = loadConfigFile(in);
				if(board == null) IllegalMessageException.badInput("Board was not Loaded");
				board.setGame(this);
				postLoadConfig(in);
			}
			for(GameEventListener gel : globalListeners) 
				registerEventListener(gel);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} 
	}