public static Fraction parseExpression(List<Fraction> fracArray, List<String> opString) {
		Fraction newFraction = null;
		List<String> precedence = new ArrayList<String>();
		List<Integer> precLoc = new ArrayList<Integer>();
		for(int i = 0; i < opString.size(); i++) {
			if(opString.get(i).equals("*") || opString.get(i).equals("/")) {
				precedence.add(opString.get(i));
				precLoc.add(i);
				opString.remove(i);
				i--;
			}
		}
		for(int i = 0; i < precedence.size(); i++) {
			newFraction = precedence.get(i).equals("*") ? fracArray.get(precLoc.get(i).intValue()).multiply(fracArray.get(precLoc.get(i).intValue() + 1)) : fracArray.get(precLoc.get(i).intValue()).divide(fracArray.get(precLoc.get(i).intValue() + 1));
			fracArray.remove(precLoc.get(i).intValue()); fracArray.remove(precLoc.get(i).intValue()); fracArray.add(precLoc.get(i).intValue(), newFraction);
		}
		
		for(int i = 0; i < opString.size(); i++) {
			newFraction = opString.get(i).equals("+") ? fracArray.get(0).add(fracArray.get(1)) : fracArray.get(0).subtract(fracArray.get(1));
			fracArray.remove(0); fracArray.remove(0); fracArray.add(0, newFraction);
		}
		
		if(fracArray.size() == 1 && opString.size() == 0) {
			fracArray.get(0).simplify();
		}
		
		return fracArray.get(0);
	}