public Game(List<Player> players) throws FileNotFoundException, IOException{
		if(players == null){
			throw new NullPointerException("Players can't be null");
		}
		if(players.size()<2){
			throw new IllegalArgumentException("The game needs at least 2 players.");
		}
		allLetterTiles = new ArrayList<Tile>();
		allPlayers = new ArrayList<Player>(players);
		gameBoard = new StandardGameBoard();
		currTurn = 0;
		passedTurn = 0;
		d= new Dictionary();
		//init letter tiles
		for(String letter : d.getLetterPool()){
			allLetterTiles.add(new LetterTile(letter.toUpperCase(), d.getPoints(letter)));
		}
		Collections.shuffle(allLetterTiles);
		for(Player p : allPlayers){
			fillUpLetterTile(p);
		}
	}