         announcementsObservers.append(observer)
     }
 
+    private func updateModel(from announcements: [APIAnnouncement]) {
+        models = announcements.sorted(by: isLastEditTimeAscending).map(Announcement2.init)
+    }
+
+    private func isLastEditTimeAscending(_ first: APIAnnouncement, _ second: APIAnnouncement) -> Bool {
+        return first.lastChangedDateTime.compare(second.lastChangedDateTime) == .orderedAscending
+    }
+
     private func provideLatestData(to observer: AnnouncementsServiceObserver) {
         observer.eurofurenceApplicationDidChangeUnreadAnnouncements(to: models)
         observer.eurofurenceApplicationDidChangeAnnouncements(models)


        func consume(event: DomainEvent.LatestDataFetchedEvent) {
            let response = event.response
            let sortedAnnouncements = response.announcements.changed.sorted(by: { (first, second) -> Bool in
                return first.lastChangedDateTime.compare(second.lastChangedDateTime) == .orderedAscending
            })

            let models = Announcement2.fromServerModels(sortedAnnouncements)
            announcements.models = models
        }

    }

        eventBus.subscribe(consumer: AnnouncementsUpdater(announcements: self))

        if let persistedAnnouncements = dataStore.getSavedAnnouncements() {
            updateModel(from: persistedAnnouncements)
        }
    }

