public void unparkVehicle(Vehicle v, int departureTime)
			throws VehicleException, SimulationException {
		if (v.isParked() == false) {
			throw new VehicleException("Vehicle is not parked!");
		} else if (v.isQueued()) {
			throw new VehicleException("Vehicle is currently in Queue!");
		} else if (v.getDepartureTime() < 0) {
			throw new VehicleException("Invalid deperture time!");
		} else if (v.isQueued() == false && v.isParked() == false) {
			throw new SimulationException("Vehicle doesn't exist.");
		}

		if (v instanceof Car) {
			if (((Car) v).isSmall()) {
				if (smallCarsParked.contains(v)) {
					smallCarsParked.remove(v);
					carParkStatus += "|S:P>A|";
				} else if (carsParked.contains(v)) {
					carsParked.remove(v);
					carParkStatus += "|S:P>A|";
				} else {
					throw new SimulationException("Cannot find vehicle.");
				}
			} else {
				carsParked.remove(v);
				carParkStatus += "|C:P>A|";
			}
		} else if (v instanceof MotorCycle) {
			if (smallCarsParked.contains(v)) {
				smallCarsParked.remove(v);
				carParkStatus += "|M:P>A|";
			} else if (motorCyclesParked.contains(v)) {
				motorCyclesParked.remove(v);
				carParkStatus += "|M:P>A|";
			}
		}
	}