public void run() {
		this.running = true;
		while (this.alive) {
			synchronized (this) {
				while (this.alive && (!this.running) && (!this.reload)) {
					try {
						wait();
					} catch (InterruptedException e) {
						kill();
					}
				}
			}
			synchronized (this) {
				if (this.alive && this.reload) {
					this.running = true;
					this.simBkg.setState(this.simCpy);
				}
			}
			if (this.running) {
				work();
			}
		}
	}