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

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

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