public void exit(){
		threadExit.start();
		while (!threadExit.getState().equals(Thread.State.TERMINATED)) {
		
			if (gui.isAborted()) {
				setTransportationState(TransportationState.ABORTED);
				break;
			
			} else {
				
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					logger.error(Thread.currentThread().getName() + Constants.THREAD_ERROR +e.getMessage());
				}
			}
		
		} if (! gui.isAborted()) {	
			building.getElevator().getElevatorContainer().removePassenger(this);
			building.getElevator().getCurrentStory().getArrivalStoryContainer().addPassenger(this);        
			setTransportationState(TransportationState.COMPLETED);
			logger.info(getMessageAction(getDestinationStory(),transportationState));	
		}
	}