public void step(SimulationComponent mComp) {
    String tLine = lineList.get(ticks);
    tick();
    Pattern tPat1 = Pattern.compile("\\s*print\\s*\"(.*)\".*");
    Matcher tM1 = tPat1.matcher(tLine);
    if(tM1.matches()) {
      mComp.addStatusMessage(name + " output : " + tM1.group(1));
    } else {
      mComp.addStatusMessage(name + " : " + tLine.trim());
    }
    Pattern tPat2 = Pattern.compile("\\s*(\\S*)\\s*\\(.*?\\).*");
    Matcher tM2 = tPat2.matcher(tLine);
    if(tM2.matches()) {
      Method m = gParent.getMethod(tM2.group(1));
      if(m != null && callStack != null) {
        callStack.push(m);
      }
    }
    if(ticks > lineList.size()) {
      System.err.println(name + " should have exited by now...");
    }
  }