Manager() {
		LOGGER.log(Level.INFO, "Loading profiles.");
        profiles = FrolfUtil.loadProfiles();
        currentProfile = null;
        		
		try {
			LOGGER.log(Level.INFO, "Loading courses.");
			courses = FrolfUtil.loadCourseCatalog();

			LOGGER.log(Level.INFO, "Loading discs.");
			discs = FrolfUtil.loadDiscs();
		} catch (IOException e) { e.printStackTrace(); }
		
		// TODO discs should be a part of the profile definition
		LOGGER.log(Level.INFO, "Loading player bags.");
		for (String username : profiles.keySet()) { 
			LOGGER.log(Level.INFO, "Loading bag for " + username);

			ArrayList<String> discNames = FrolfUtil.readDiscsForUser(username);
			for (String discName : discNames) {
				profiles.get(username).addDiscToBag(discs.getDisc(discName));
			}
		}
		
		currentProfile = profiles.get(defaultProfile);
	}