 import Foundation
 
 class TutorialPresenter: TutorialPageSceneDelegate, TutorialActionDelegate {
+
+    // MARK: Nested Types
+
+    struct CompleteTutorialActionDelegate: TutorialActionDelegate {
+
+        var splashScreenRouter: SplashScreenRouter
+        var tutorialStateProviding: UserCompletedTutorialStateProviding
+
+        func tutorialActionDidFinish(_ action: TutorialAction) {
+            splashScreenRouter.showSplashScreen()
+            tutorialStateProviding.markTutorialAsComplete()
+        }
+
+    }
 
     // MARK: Properties
 


    // MARK: TutorialActionDelegate

    func tutorialActionDidFinish(_ action: TutorialAction) {
        splashScreenRouter.showSplashScreen()
        tutorialStateProviding.markTutorialAsComplete()
    }

    // MARK: Private


    // MARK: TutorialPageSceneDelegate

    func tutorialPageSceneDidTapPrimaryActionButton(_ tutorialPageScene: TutorialPageScene) {
        let delegate = CompleteTutorialActionDelegate(splashScreenRouter: splashScreenRouter, tutorialStateProviding: tutorialStateProviding)
        currentPrimaryAction?.runAction(delegate)
    }

    func tutorialPageSceneDidTapSecondaryActionButton(_ tutorialPageScene: TutorialPageScene) {
