public void step(SimulationComponent mComp) {
    if(callStack == null) {
      if(!gMethodList.get(0).isFinished()) {
        gMethodList.get(0).step(mComp);
      } else { bFinished = true; }
      return;
    }
    if(!gStarted && callStack != null) {
      callStack.push(gMethodList.get(0));
      gStarted = true;
    }
    if(callStack != null && !callStack.isEmpty()) { 
      if(callStack.peek().isFinished()) { callStack.pop(); }
      else { callStack.peek().step(mComp); }
    }
    else { bFinished = true; }
  }