public static final HashMap<String, Course> loadCourseCatalog() throws IOException {
		LOGGER.log(Level.INFO, "Loading course catalog..");
		
		HashMap<String, Course> courses = new HashMap<String, Course>();
		JSONParser parser = new JSONParser();

		File[] files = new File(COURSE_ROOT).listFiles();
		for (File file : files) {
	        if (file.isDirectory()) {
        		Course course = readCourse(new File(file + "/course.json"));

	        	for (File definitionFile : file.listFiles()){
	        		
	        		try { // Course definition
						if (!definitionFile.getCanonicalPath().contains("course.json")) {
							LOGGER.log(Level.INFO, "Adding hole to course '" + course.getName() + "'");
							course.addHole(readHole(definitionFile));
						} else { // Hole definition
													}
					} catch (IOException e) {e.printStackTrace();}
	        	}
	        	
    			courses.put(course.getName(), course);
    			LOGGER.log(Level.INFO, "Loaded course '" + course.getName() + "'");
	        } else {/* Do nothing */}
	    }
		LOGGER.log(Level.INFO, "Loaded course catalog");
		return courses;
	}