void parseTargetStatistics(Element el) {
		
		this.targetStatistics = new ArrayList<Statistic>();
		NodeList paramList = el.getElementsByTagName("targetStatistic");
		
		// for each parameter
		for (int j = 0; j < paramList.getLength(); j++) {
			Node node 	 = paramList.item(j);
			String name  = ((Element)node).getAttributes().getNamedItem("name").getNodeValue();
			String value = ((Element)node).getAttributes().getNamedItem("value").getNodeValue();
			
			if (name.equals("calculateFromFile")) {
				String targetDataName = value;
				
				if (verbose) {
					System.out.println("Generating target statistics from file using "+modelType.getModelName());
					System.out.println("Reading in data from "+targetDataName);
				}
				
				TraceFileReader trace 		= new TraceFileReader();
				List<Double[]> targetData 	= trace.readData(targetDataName);
				
				if (verbose) {
					for (String h : trace.getHeader()) {
						System.out.println(h);
					}
				}
				
				modelType.calculateStatistics(targetData);
				
				targetStatistics = new ArrayList<Statistic>();
				for (Statistic stat : modelType.getStatistics()) {
					// include nominal 10% tolerance
					ResultStatistic res = new ResultStatistic( stat.getName(), stat.getValue(), stat.getValue()*0.1);
					targetStatistics.add(res);
				}
				
				//targetStatistics = modelType.getStatistics();
				
				if (verbose) {
					System.out.println("Calculated target statistics from trace file:");
					for (Statistic stat : targetStatistics) {
						System.out.println("TargetStatistic = "+stat.toString());
					}
				}
						
			} else {
			
				Double val   	 = Double.parseDouble(value);
				
				String tolerance = ((Element)node).getAttributes().getNamedItem("tolerance").getNodeValue();
				Double tol   	 = Double.parseDouble(tolerance);
				
				Statistic ts  = new ResultStatistic( name, val, tol );
				this.targetStatistics.add(ts);
				
			
				if (verbose) {
					System.out.println("TargetStatistic = "+ts.toString());
				}
			}
		}
	}