public ArrayList<ArrayList<Course>> getPrereqs(String crn, String term, String year, String subj, String crse) throws Exception {
		ArrayList<ArrayList<Course>> prereqs = new ArrayList<ArrayList<Course>>();

		// Make url
		String courseUrl = COURSE_URL + "?CRN=" + crn + "&TERM=" + term + "&YEAR=" + year +
				"&SUBJ=" + subj + "&CRSE=" + crse + "&history=N";

		// Go to url
		Document courseDoc = Jsoup.connect(courseUrl).userAgent(USER_AGENTS).get();

		// Parse document
		Elements prereqHtml = courseDoc.select("table.plaintable tr");
		Pattern matchCourse = Pattern.compile("[a-zA-Z]{2,4} \\d{4}.*");
		for(Element e : prereqHtml) {
			if(e.toString().contains("Prerequisites:")) {
				String[] prereqLinks = e.getElementsByTag("td").get(1).toString().split(",");
				for(String pe : prereqLinks) {
					ArrayList<Course> prerecGroup = new ArrayList<>();
					if (pe.contains(" or ")) {
					    String[] orRecList = pe.split("<a h[^>]*>");
					    for (String opr : orRecList) {
					        Matcher matcher = matchCourse.matcher(opr);
					        if (!matcher.matches())
					            continue;
					        String[] name = opr.split(" ");
					        Course temp = new Course(name[0], name[1].substring(0, 4));
					        prerecGroup.add(temp);
					    }
					} else {
					    String[] orRecList = pe.split("<a h[^>]*>");
    					if (orRecList.length > 2) System.out.println("There was more than one element when expecting one prerec. TimeTableScrapper getPrerecs");
    					String[] name;
    					if (!matchCourse.matcher(orRecList[0]).matches())
    					    name = orRecList[1].split(" ");
    					else
    					    name = orRecList[0].split(" ");
    					Course temp = new Course(name[0], name[1].substring(0, 4));
    					prerecGroup.add(temp);
					}
					prereqs.add(prerecGroup);
				}
				break;
			}
		}

		// Return array
		return prereqs;
	}