       price = nil
     }
     
+    let surgeText = dictionary["surgeString"] as? String
+    let surgeImageURLString = dictionary["surgeImageURL"] as? String
+    let surgeImageURL = surgeImageURLString != nil ? NSURL(string: surgeImageURLString!) : nil
+    
     let ETA = dictionary["ETA"] as? NSTimeInterval
     
     let tripUpdateURLString = dictionary["tripUpdateURL"] as? String
     let tripUpdateURL = tripUpdateURLString != nil ? NSURL(string: tripUpdateURLString!) : nil
     
-    self.init(title: title, subtitle: subtitle, bookingURL: bookingURL, bookingTitle: bookingTitle, tripUpdateURL: tripUpdateURL, imageURL: imageURL, price: price, priceString: priceString, ETA: ETA)
+    self.init(title: title, subtitle: subtitle, bookingURL: bookingURL, bookingTitle: bookingTitle, tripUpdateURL: tripUpdateURL, imageURL: imageURL, price: price, priceString: priceString, surgeText: surgeText, surgeImageURL: surgeImageURL, ETA: ETA)
   }
 }
 


  /// Localised human-friendly string, e.g., "$10"
  let priceString: String?

  /// Optional ETA for this option. This is the expected waiting time.
  let ETA: NSTimeInterval?

  /// Expected waiting time. Negative if unknown. (For Obj-c compatibility.)
  let ETARaw: NSTimeInterval
  
  private init(title: String, subtitle: String?, bookingURL: NSURL, bookingTitle: String, tripUpdateURL: NSURL?, imageURL: NSURL?, price: TKQuickBookingPrice?, priceString: String?, surgeText: String?, surgeImageURL: NSURL?, ETA: NSTimeInterval?) {
    self.title = title
    self.subtitle = subtitle
    self.bookingURL = bookingURL
