         core.fire(command: ChangeUserEmail(email: email, app: currentApp))
     }
     
-    func resetPassword<T: State>(for email: String, core: Core<T>) {
-        core.fire(command: ResetPassword(email: email, app: currentApp))
+    func resetPassword<T: State>(for email: String, app: FirebaseApp?, core: Core<T>) {
+        let app = app ?? currentApp
+        core.fire(command: ResetPassword(email: email, app: app))
     }
     
     func logOutUser<T: State>(core: Core<T>) {

        return user.isEmailVerified
    }
    
    func sendEmailVerification<T: State>(to user: User?, core: Core<T>) {
        core.fire(command: SendEmailVerification(for: user, app: currentApp))
    }
    
    func reloadCurrentUser<T: State>(core: Core<T>) {


    func getUserId() -> String?
    func getUserEmailVerified() -> Bool
    func sendEmailVerification<T: State>(to user: User?, app: FirebaseApp?, core: Core<T>)
    func reloadCurrentUser<T: State>(core: Core<T>)
    func logInUser<T: State>(with email: String, and password: String, core: Core<T>)
    func signUpUser<T: State>(with email: String, and password: String, core: Core<T>, completion: ((_ userId: String?) -> Void)?)
    func changeUserPassword<T: State>(to newPassword: String, core: Core<T>)
    func changeUserEmail<T: State>(to email: String, core: Core<T>)
    func resetPassword<T: State>(for email: String, app: FirebaseApp?, core: Core<T>)
    func logOutUser<T: State>(core: Core<T>)
}

