         authService.add(observer: self)
     }
 
+    // MARK: AuthStateObserver
+
     func userDidLogin(_ user: User) {
         newsScene.showMessagesNavigationAction()
         newsScene.hideLoginNavigationAction()


struct NewsPresenter: AuthStateObserver, NewsSceneDelegate {

    private let newsScene: NewsScene
    private let welcomePromptStringFactory: WelcomePromptStringFactory
    private let privateMessagesService: PrivateMessagesService
    private let performLoginCommand: Command
    private let showMessagesCommand: Command

    init(newsScene: NewsScene,
         authService: AuthService,

        newsScene.showLoginDescription(welcomePromptStringFactory.makeDescriptionForAnonymousUser())
    }

    // MARK: NewsSceneDelegate

    func newsSceneDidTapLoginAction(_ scene: NewsScene) {
        performLoginCommand.run()
    }
