         configureTileRenderer()
         configureMapView()
         condfigureGPSDisabledOverlayView()
-
-        annotationController
+        registerAnnotationViews()
+        setupMapInfoViewController()
+
+        setNeedsStatusBarAppearanceUpdate()
+    }
+
+    private func registerAnnotationViews() {
+        annotationControllers
             .map { $0.annotationViewType }
             .forEach(mapView.register)
-
-        setNeedsStatusBarAppearanceUpdate()
+    }
+
+    private func setupMapInfoViewController() {
+        add(mapInfoViewController)
+        mapInfoViewController.view.addLayoutsSameSizeAndOrigin(in: view)
+        mapInfoViewController.tapHandler = { [unowned self] in
+            self.nextRideManager.nextRide.flatMap { self.focusOnCoordinate($0.coordinate) }
+        }
     }
 
     private func configureTileRenderer() {


    // MARK: Properties

    private lazy var annotationController: [AnnotationController] = {
        [BikeAnnotationController(mapView: self.mapView)]
    }()

    private let nightThemeOverlay = DarkModeMapOverlay()

    private let themeController: ThemeController
    private let friendsVerificationController: FriendsVerificationController
    private var tileRenderer: MKTileOverlayRenderer?
    private let nextRideManager: NextRideManager

    private let mapInfoViewController = MapInfoViewController.fromNib()

    init(
        themeController: ThemeController,
        friendsVerificationController: FriendsVerificationController,
        nextRideManager: NextRideManager
    ) {
        self.themeController = themeController
        self.friendsVerificationController = friendsVerificationController
        self.nextRideManager = nextRideManager

        super.init(nibName: nil, bundle: nil)
    }

