     // MARK: TutorialPageSceneDelegate
 
     func tutorialPageSceneDidTapPrimaryActionButton(_ tutorialPageScene: TutorialPageScene) {
-        currentPrimaryAction?.runAction(self)
+        let delegate = CompleteTutorialActionDelegate(splashScreenRouter: splashScreenRouter, tutorialStateProviding: tutorialStateProviding)
+        currentPrimaryAction?.runAction(delegate)
     }
 
     func tutorialPageSceneDidTapSecondaryActionButton(_ tutorialPageScene: TutorialPageScene) {


    // MARK: TutorialActionDelegate

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

    // MARK: Private


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

