     }
     
     guard
-      let annotation = annotation,
       let vehicle = annotation as? Vehicle else {
       return // happens on getting removed.
     }

    
    // The wrapper
    let wrapper = UIView(frame: frame)
    wrapper.backgroundColor = UIColor.clear
    wrapper.isOpaque = false
    
    // The vehicle

    // Vehicle color needs to change following real-time update.
    if let vehicle = annotation as? Vehicle {
      vehicle.rx.observeWeakly(NSNumber.self, "occupancyRaw")
        .filter { $0 != nil }
        .map { rawOccupancy -> UIColor? in
          let occupancy = TKOccupancy(rawValue: rawOccupancy!.intValue)
          return occupancy?.color
        }
        .subscribe(onNext: { [weak self] color in
          guard let `self` = self else { return }
          self.vehicleShape?.color = color
        })
        .addDisposableTo(disposeBag)
    }
