public static Equation GenRndEquation(int numOperators){
		//Create arrayList of expressions
		ArrayList<Expression> eList = new ArrayList<Expression>();
		//Create a random
		Random rnd = new Random();

		//Add a first numerical expression to equationList (First thing in an equation must be a number)
		eList.add(new NumericalExpression(rnd.nextInt(10) + 1));

		//For each proceeding operator
		for(int i = 0; i < numOperators; i++){

			//Choose an operator
			int opChoice = rnd.nextInt(4);

			//Declare a variable for the operator expression
			OperatorExpression o = null;



			//Declare variable for second random numerical expression
			NumericalExpression e2 = null;

			//Add that operator to the list
			switch(opChoice){
			case 0:
				//SEt operator
				o = new AdditionExpression();
				break;
			case 1:
				//Set operator
				o = new SubtractionExpression();
				break;
			case 2:
				//SEt operator
				o = new MultiplicationExpression();
				break;
			case 3:
				//If division, find every factor of the first numerical expression
				ArrayList<Integer> validDivisors = new ArrayList<Integer>();

				for(int j = 1; j <= eList.get(eList.size() - 1).evaluate(); j++){
					if(eList.get(eList.size() - 1).evaluate() % j == 0){
						//If e1 % j == 0, j is a factor of e1 and should be added to the list
						validDivisors.add(j);
					}
				}

				//Set o
				o = new DivisionExpression();

				//CHoose random e2
				int randE2Index = rnd.nextInt(validDivisors.size());
				//Create e2
				e2 = new NumericalExpression(validDivisors.get(randE2Index));

				break;
			default:
				//Shit went down
				break;
			}

			//Create e2 (if not already created)
			if(e2 == null){
				e2 = new NumericalExpression(rnd.nextInt(10));
			}

			//Add operator
			eList.add(o);

			//Add a final numericalexpression
			eList.add(e2);
		}

		//Declare a returnEquation
		Equation returnEquation;
		try{
			returnEquation = new Equation(eList);
		}
		catch(InvalidEquationException iEE){
			//If the equation is invalid, make another?
			System.out.println("From generating a random equation: " + iEE.getMessage());
			returnEquation = GenRndEquation(numOperators);
		}

		//Return a put together equation
		return returnEquation;
	}