protected void importInput(String section, Engine engine) throws Exception {
        BufferedReader reader = new BufferedReader(new StringReader(section));
        reader.readLine(); //ignore first line [InputX]

        InputVariable inputVariable = new InputVariable();
        engine.addInputVariable(inputVariable);

        String line;
        while ((line = reader.readLine()) != null) {
            List<String> keyValue = Op.split(line, "=");
            if (keyValue.size() != 2) {
                throw new RuntimeException(String.format(
                        "[syntax error] expected a property of type "
                        + "'key=value', but found <%s>", line));
            }
            String key = keyValue.get(0).trim();
            String value = keyValue.get(1).trim();

            if ("Name".equals(key)) {
                inputVariable.setName(Op.makeValidId(value));
            } else if ("Enabled".equals(key)) {
                inputVariable.setEnabled(Op.isEq(Op.toDouble(value), 1.0));
            } else if ("Range".equals(key)) {
                Op.Pair<Double, Double> minmax = extractRange(value);
                inputVariable.setMinimum(minmax.first);
                inputVariable.setMaximum(minmax.second);
            } else if (key.startsWith("MF")) {
                inputVariable.addTerm(prepareTerm(extractTerm(value), engine));
            } else if ("NumMFs".equals(key)) {
                //ignore
            } else {
                throw new RuntimeException(String.format(
                        "[import error] token <%s> not recognized", key));
            }
        }
    }