public List<Regional> getRegionals(URL url) {
		Document doc;
		Tidy tidy = new Tidy();
		List<Regional> retVal = new ArrayList<Regional>();
		Regional temp; 
		String link = "";
		String name = "";
		int teamCounter = 0;
		
		try {
			
			doc = tidy.parseDOM(url.openStream(), null);
			XPath xpath = XPathFactory.newInstance().newXPath();
		    XPathExpression expr = xpath.compile("//tr[@bgcolor = '#FFFFFF']/td/a/@href|//tr[@bgcolor = '#FFFFFF']/td/text()");
			NodeList nodes = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
			
			for(int i = 0; i < nodes.getLength();) {
				temp = new Regional();
				temp.setType(nodes.item(i++).getNodeValue());
				link = nodes.item(i++).getNodeValue();
				link = link.replace("event_details", "event_teamlist");
				temp.setUrl(FRCURL + link);
				temp.setVenue(nodes.item(i++).getNodeValue());
				temp.setLocation(nodes.item(i++).getNodeValue());
				temp.setDate(nodes.item(i++).getNodeValue());
				
				retVal.add(temp);
				
				link = "";
				
			}
			
			expr = xpath.compile("//tr[@bgcolor = '#FFFFFF']/td/a/text()|//tr[@bgcolor = '#FFFFFF']/td/a/em/text()");
			nodes = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
			
			for(int i = 0; i < nodes.getLength();) {
				
				name = nodes.item(i++).getNodeValue();
				while(i < nodes.getLength() && (nodes.item(i).getNodeValue().equals("FIRST") || nodes.item(i).getNodeValue().equals(" Robotics District Competition") || nodes.item(i).getNodeValue().equals(" Championship"))) {
					name += nodes.item(i++).getNodeValue();
				}
				retVal.get(teamCounter++).setName(name);
				
			}
		    
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XPathExpressionException e) {
			e.printStackTrace();
		}
		
		return retVal;
	}