@Override
	public int loadGame(String name) throws IOException{
		XStream xstream = new XStream();
		File file = new File("saves/" + name + ".xml");
		ServerModel game = (ServerModel) xstream.fromXML(file);
		
		ArrayList<Road> roads = game.getMap().getRoads();
		ArrayList<Settlement> settlements = game.getMap().getSettlements();
		ArrayList<City> cities = game.getMap().getCities();
		
		for (Road road : roads) {
			try {
				road.initializeLocation();
			}
			catch(Exception e) {
				System.err.print(e);
			}
		}
		
		for (Settlement settlement : settlements) {
			try {
				settlement.initializeLocation();
			}
			catch(Exception e) {
				System.err.print(e);
			}
		}
		
		for (City city : cities) {
			try {
				city.initializeLocation();
			}
			catch(Exception e) {
				System.err.print(e);
			}
		}
		
		List<Player> players = game.getPlayers();
		List<PlayerDescription> playerDescriptions = new ArrayList<>();
		if(players != null){
			for(int i = 0; i < players.size(); i++){
				if(players.get(i) != null){
					PlayerDescription pDescrip = new PlayerDescription(players.get(i).getColor(),players.get(i).getPlayerID(),
							players.get(i).getName());
					playerDescriptions.add(pDescrip);
				}
			}
		}
		GameDescription gs = new GameDescription(name, gameModelsList.size(), playerDescriptions);
		gameModelsList.add(game);
		gameDescriptionsList.add(gs);
		return gs.getId();
	}