     }
 
     private var refreshObservers = [RefreshServiceObserver]()
-    public func add(_ observer: RefreshServiceObserver) {
+    func add(_ observer: RefreshServiceObserver) {
         refreshObservers.append(observer)
     }
 
-    public func determineSessionState(completionHandler: @escaping (EurofurenceSessionState) -> Void) {
+    func determineSessionState(completionHandler: @escaping (EurofurenceSessionState) -> Void) {
         let shouldPerformForceRefresh: Bool = forceRefreshRequired.isForceRefreshRequired
         let state: EurofurenceSessionState = {
             guard dataStore.getLastRefreshDate() != nil else { return .uninitialized }

        completionHandler(state)
    }

    public func login(_ arguments: LoginArguments, completionHandler: @escaping (LoginResult) -> Void) {
        authenticationCoordinator.login(arguments, completionHandler: completionHandler)
    }

    public func logout(completionHandler: @escaping (LogoutResult) -> Void) {
        authenticationCoordinator.logout(completionHandler: completionHandler)
    }

    public func storeRemoteNotificationsToken(_ deviceToken: Data) {
        eventBus.post(DomainEvent.RemoteNotificationRegistrationSucceeded(deviceToken: deviceToken))
    }

    public func add(_ observer: PrivateMessagesObserver) {
        privateMessagesController.add(observer)
    }
    

        return .externalURL(url)
    }

    func add(_ observer: AnnouncementsServiceObserver) {
        announcements.add(observer)
    }

    func openAnnouncement(identifier: Announcement.Identifier, completionHandler: @escaping (Announcement) -> Void) {
        announcements.openAnnouncement(identifier: identifier, completionHandler: completionHandler)
    }

    func fetchAnnouncementImage(identifier: Announcement.Identifier, completionHandler: @escaping (Data?) -> Void) {
        announcements.fetchAnnouncementImage(identifier: identifier, completionHandler: completionHandler)
    }

    func add(_ observer: ConventionCountdownServiceObserver) {
        conventionCountdownController.observeDaysUntilConvention(using: observer)
    }

    func add(_ observer: AuthenticationStateObserver) {
        authenticationCoordinator.add(observer)
    }

