                               isFavourite: false)
             }
         }
-
-        observer.eurofurenceApplicationDidUpdateEvents(to: self.events)
+    }
+
+    func add(_ observer: EventsServiceObserver) {
+        eventsObservers.append(observer)
+        observer.eurofurenceApplicationDidUpdateRunningEvents(to: makeRunningEvents())
+        observer.eurofurenceApplicationDidUpdateUpcomingEvents(to: [])
+        observer.eurofurenceApplicationDidUpdateEvents(to: events)
     }
 
     private func makeRunningEvents() -> [Event2] {

                                                                      clock: clock)

        imageCache = ImagesCache(eventBus: eventBus, imageRepository: imageRepository)
    }

    func resolveDataStoreState(completionHandler: @escaping (EurofurenceDataStoreState) -> Void) {

    }

    private var eventsObservers = [EventsServiceObserver]()
    fileprivate func reconstituteEventsFromDataStore() {
        let events = dataStore.getSavedEvents()
        let rooms = dataStore.getSavedRooms()
        let tracks = dataStore.getSavedTracks()
