public void unparkVehicle(Vehicle v,int departureTime) throws VehicleException, SimulationException {
		if(!v.isParked())
			throw new VehicleException ("Vehicle is not parked");
		if(v.isQueued())
			throw new VehicleException ("Vehicle is in queue");
		if(departureTime > Constants.CLOSING_TIME || departureTime < 0)
			throw new VehicleException ("Violates timing constraints");
		if(!v.isParked())
			throw new SimulationException("Vehicle is not in car park");
		
		if(v.isParked()){
			v.exitParkedState(departureTime);
			spaces.remove(v);
			status += setVehicleMsg(v, "P", "A");
			// determine type of vehicle
			if(v instanceof Car){
				if(((Car) v).isSmall()){
					SmallCars.remove(v);
				}else{
					Cars.remove(v);
				}
			}else{
				MotorCycles.remove(v);				
			}
			// update variables
			numMotorCycles = getNumMotorCycles();
			numSmallCars = getNumSmallCars();
			numCars = getNumCars();
		}
	}