         case .rate:
             guard let viewController = viewController, let iTunesItemIdentifier = iTunesItemIdentifier else { fatalError() }
             settingsActionService.rateApp(fromViewController: viewController, iTunesItemIdentifier: iTunesItemIdentifier)
-            currentState = .initial
             delegate?.didRateApp()
+            transition(to: .initial)
         case .share:
             guard let viewController = viewController, let appStorePath = appStorePath else { fatalError() }
             settingsActionService.shareApp(fromViewController: viewController, appStoreAppPath: appStorePath)
-            currentState = .initial
             delegate?.didShareApp()
+            transition(to: .initial)
         case .feedback:
             guard let viewController = viewController, let feedbackEmail = feedbackEmail else { fatalError() }
             settingsActionService.sendFeedback(fromViewController: viewController, emailAddresses: [feedbackEmail], mailComposeDelegate: self)
-            currentState = .initial
             delegate?.didSendFeedback()
+            transition(to: .initial)
         }
     }
     

    }
    
    func initialTitle() -> String {
        return "Are you happy with this app?"
    }
    
    func rateTitle() -> String {

            transition(to: .feedback)
        case .rate, .share, .feedback:
            delegate?.didDeclineSurvey()
            transition(to: .initial)
        }
    }
    
