public void run() {
		while(true){
				try {
					sleep(delayFromStart * War.TIME_INTERVAL); 
			synchronized (destructor) {
			    if (target.getStatus() == Missile.Status.Launched){
				for (WarEventListener l : allListeners) {
				    l.addedMissileToDestroy(destructor.getDestructorId(),target.getMissileId(),super.getDelayBeforeLaunch());
				}
					for(int time = 0 ; time <= super.getDelayBeforeLaunch() ; time++){
					    Thread.sleep(War.TIME_INTERVAL);
					    for (WarEventListener l : allListeners) {
						l.UpdatedMissileProgressToModelEvent(time, target.getMissileId() , "IronDome",(destructor.getType()+" #" + destructor.getDestructorId()),0,super.getDelayBeforeLaunch());
					    }
					}
					    for (WarEventListener l : allListeners) {
						l.RemoveCurrentElement(target.getMissileId());
					    }
					    logDestroyingMissile();
				destroyTarget();		// try to destroy missile
			}
			}
				
		} catch (Exception e) {
		}
		}
	}