     let cardSegments = segment.trip.segments(with: .inDetails).compactMap { $0 as? TKSegment }
     
     let segmentCards: [SegmentCards] = cardSegments.map {
-      let cards = TKUITripModeByModeCard.config.builder.cards(for: $0, mapManager: mapManager)
+      let cards = TKUITripModeByModeCard.config.builder.cards(for: $0, mapManager: tripMapManager)
       return SegmentCards(segmentIndex: $0.index, cards: cards)
     }
     let cards = segmentCards.flatMap { $0.cards }

    guard let first = mapManager.trip.segments.first else { preconditionFailure() }
    try! self.init(startingOn: first, mapManager: mapManager)
  }
  
  required init?(coder: NSCoder) {
    // TODO: Implement to support state-restoration

  /// mode-by-mode basis of a trip.
  ///
  /// - Parameter segment: Segment to focus on first
  public init(startingOn segment: TKSegment, mapManager: TKUITripMapManager? = nil) throws {
    if let mapTrip = mapManager?.trip, segment.trip != mapTrip {
      throw Error.segmentTripDoesNotMatchMapManager
    }
    
    let tripMapManager = mapManager ?? TKUITripMapManager(trip: segment.trip)
    self.tripMapManager = tripMapManager
    
    // TODO: Segment.index works generally, but not for the first and last
    //   card, i.e., departure and arrival as those don't have an index
