     try super.init(from: decoder)
     isDraggable = false
     
-    // Sometimes these comes in the decoder rather than in the "data" field
+    // From the API these comes in the decoder rather than in the "data" field
     guard let values = try? decoder.container(keyedBy: CodingKeys.self) else { return }
-    stopCode = try values.decode(String.self, forKey: .code)
-    address = try? values.decode(String.self, forKey: .services)
+    stopCode = try values.decode(String.self, forKey: .stopCode)
+    services = try? values.decode(String.self, forKey: .services)
     stopShortName = try? values.decode(String.self, forKey: .shortName)
     stopSortScore = try? values.decode(Int.self, forKey: .popularity)
   }

  public required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
  }

  public var stopCode: String {
    get { return data["sg_stopCode"] as! String }
    set { data["sg_stopCode"] = newValue }

public class STKStopCoordinate: STKModeCoordinate, STKStopAnnotation {
  
  private enum CodingKeys: String, CodingKey {
    case stopCode
    case services
    case shortName
    case popularity
