public static Scorecard readRoundFromFile(File filename) {
		JSONObject json = new JSONObject();
		try {
			LOGGER.log(Level.INFO, "Reading round JSON from file '" + filename + "'");
			json = (JSONObject) new JSONParser().parse(new FileReader(filename));
		} catch (FileNotFoundException e) { e.printStackTrace();
		} catch (IOException e) { e.printStackTrace(); 
		} catch (ParseException e) { e.printStackTrace(); }
		
		Set<String> players = json.keySet();
		players.remove("pars"); players.remove("course");
		HashMap<String, ArrayList<Integer>> scores = new HashMap<String, ArrayList<Integer>>();
		for (String player : players) { 
			LOGGER.log(Level.INFO, "Reading scores for player '" + player + "'");
			scores.put(player, (ArrayList<Integer>)json.get(player));
		}
		
		LOGGER.log(Level.INFO, "Finished reading disc JSON '" + filename + "'");
		return new Scorecard(
			(String)json.get("course"),
			scores,
			(ArrayList<Integer>)json.get("pars")
		);
	}