         // Since we don't gracefully handle location updates, we defer a location
         // refresh until a mock location has been selected.
         if AppConstants.BuildChannel != .MockLocation {
-            placeCarouselViewController?.locationMonitor.refreshLocation()
+            locationMonitor.refreshLocation()
         }
     }
 
     func applicationWillTerminate(_ application: UIApplication) {
         // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-        placeCarouselViewController?.locationMonitor.cancelTimeAtLocationTimer()
+        locationMonitor.cancelTimeAtLocationTimer()
         eventsNotificationsManager?.persistNotificationCache()
     }
 
     func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
-        guard let currentLocation =  placeCarouselViewController?.locationMonitor.getCurrentLocation() else {
+        guard let currentLocation =  locationMonitor.getCurrentLocation() else {
             return completionHandler(.noData)
         }
         eventsNotificationsManager?.checkForEventsToNotify(forLocation: currentLocation, isBackground: AppConstants.cacheEvents) { (events, error) in


    func applicationDidEnterBackground(_ application: UIApplication) {
        // if there is a timer running, cancel it. We'll wait until background app refresh fires instead
        placeCarouselViewController?.locationMonitor.cancelTimeAtLocationTimer()
        eventsNotificationsManager?.persistNotificationCache()
        AppState.enterBackground()
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
        placeCarouselViewController?.locationMonitor.startTimeAtLocationTimer()
        AppState.enterForeground()
    }



        if AppConstants.areNotificationsEnabled {
            application.setMinimumBackgroundFetchInterval(AppConstants.backgroundFetchInterval)
            self.eventsNotificationsManager = EventNotificationsManager(withLocationProvider: locationMonitor)
        }

        // display
