public Expression(String expression) {
		expression = bufferVariables(expression);
		expression = decimalAllNumbers(expression);
		String[] sa = expression.split(splitAtOperatorsRegex, 0);
		totalIndecies = sa.length;
		for (String s: sa) {
			s = s.replaceAll("asin", "");
			s = s.replaceAll("sin", "");
			s = s.replaceAll("atan", "");
			s = s.replaceAll("tan", "");
			s = s.replaceAll("acos", "");
			s = s.replaceAll("cos", "");
			s = s.replaceAll("sqrt", "");
			s = s.replaceAll("toRadians", "");
			s = s.replaceAll("ln", "");
			variablesInOrder.add(s.replaceAll("[-]*[)(]", ""));
		}
		String orderedContents = expression.replaceAll("[\t \n\r]", "");
		for (int i = 0; i < totalIndecies; i++) {
			orderedContents = orderedContents.replaceFirst(variablesInOrder.get(i), "" + i);
		}
		System.out.println(orderedContents);
		createOrder(orderedContents);

		intStorage = new double[totalIndecies];
	}