public CellSimProgramReader(File input) throws IOException, ClassNotFoundException {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		
		DocumentBuilder builder=null;
		Document document=null;
		
		try {
			builder = factory.newDocumentBuilder();
			document = builder.parse(new FileInputStream(input));
		}
		catch (ParserConfigurationException pce) {
			System.out.println("ParserConfiguration-Exception:"+pce);
		}
		
		catch (SAXException saxe) {
			System.out.println("SAX-Exception: "+saxe);
		}
		
		catch (IOException ioex) {
			System.out.println("IO-Exception: " +ioex);
		}

		Element root = document.getDocumentElement();
		NodeList children=root.getChildNodes();
		
		for (int i = 0; i < children.getLength(); i++) {
			Node child = children.item(i);
			if (child instanceof Element) {
				Element childElement = (Element)child;
				if (childElement.getTagName().equals("Geometry")) {
					parseGeometry(childElement);
				}
				else if (childElement.getTagName().equals("Boundary")) {
					parseBoundary(childElement);
				}
				else if (childElement.getTagName().equals("State")) {
					parseState(childElement);
				}
				else if (childElement.getTagName().equals("Init")) {
					parseInit(childElement);
				}
			}
		}
	}