@Override
 public synchronized void start() {
   if (this.simulation.getState() != EngineState.STOPPED
       && this.simulation.getState() != EngineState.CRASHED) return;
   if (!this.scenarioLoaded) {
     this.loadScenario(this.currentScenario);
   }
   this.updateScenarioParameters();
   simulation.runSimulation();
   this.scenarioLoaded = false;
   logger.info("Starting new simulation");
 }
 @Override
 public synchronized void resume() {
   simulation.resumeSimulation();
 }
 @Override
 public synchronized void pause() {
   simulation.pauseSimulation();
 }
 @Override
 public synchronized void stop() {
   simulation.stopSimulation();
 }