public static Level forName(final String name) {
        if (name == null) {
            throw new IllegalArgumentException("Name cannot be null for level");
        }
        if (name.toUpperCase().equals("NONE")) {
            return NONE;
        } else if (name.toUpperCase().equals("NOVICE")) {
            return NOVICE;
        } else if (name.toUpperCase().equals("INTERMEDIATE")) {
            return INTERMEDIATE;
        } else if (name.toUpperCase().equals("ADVANCED")) {
            return ADVANCED;
        } else if (name.toUpperCase().equals("EXPERT")) {
            return EXPERT;
        }
        throw new IllegalArgumentException("Name \"" + name + "\" does not correspond to any Level");
    }