{
input = input.replace(" ", "").toLowerCase();
String[] parts = input.split(",");
if (parts.length < 2)
throw new IncorrectODEEquationException("lack of initial values");
Equation equation = new Equation(parts[0]);
equation.setOrder(longestRun(parts[0], '\'', 1));
List<String> init = new ArrayList<String>(parts.length - 1);
for (int i = 1; i < parts.length; i++)
init.add(parts[i]);
equation.setInitValues(parseInitialValues(init));
equation.setFunctionVariable(parseFunctionVariable(parts[0]));
equation.setIndependentVariable(parseIndependentVariable(parts[0], equation.getFunctionVariable()));
if (equation.getFunctionVariable() != parts[1].charAt(0))
throw new IncorrectODEEquationException("Incorrect initial variable");
return equation;
}