             })
             
             return
+        
+        } else {
+            
+            // Change the attribute directly if not a password or email
+            // This is easy because Auth (Firebase) only internally maintains email and password
+            
+            userInformationRef.child(UserState.currentUser.uid).child("\(changingAttribute)").setValue(value)
+            self.presentSimpleAlert(title: "Success", message: "Your \(changingAttributeName) has been updated", completion: { _ in
+                self.dismiss(animated: true, completion: nil)
+            })
         }
-        
-        // Normal changes are written directly to user record in Firebase
-        // TODO: Implement checking to enforce rules on certain attributes
-        // TODO: Save attribute into UserState.currentUser
-        
-        if let user = Auth.auth().currentUser {
-            userInformationRef.child(String(user.uid)).child("\(changingAttribute)").setValue(value)
-        }
-        
-        //print("Commiting value: \(value) for key \(changingAttribute)")
-        //self.dismiss(animated: true, completion: nil)
     }
     
-    // ==========================================
-    // ==========================================
+    
+    /**
+     User tapped outside of prompt and wants to dismiss it
+     */
     func didCancelChange() {
         self.dismiss(animated: true, completion: nil)
     }

        - value: The value present in the text field when commit button was pressed
     */
    func didCommitChange(value: String) {
        
        if (changingAttribute == .email) {
            changeEmail(email: value, callback: { (success, error) in
                
                if (!success) {
                    self.view.isHidden = true

                    var message: String
                    
                    // Unwrap the error message or give it a general one if N/A
                    if let error = error { message = error.localizedDescription }
                    else { message = Constants.Errors.changeEmailError}

                    // Present the alert, and dismiss this whole view when OK is pressed
                    self.presentSimpleAlert(title: "Error changing email address", message: message, completion: { _ in
                        self.dismiss(animated: true, completion: nil)
                    })
                }

            
        } else if (changingAttribute == .password) {
            
            // Attempt to change password using dedicated function
            changePassword(password: value, callback: { error in
                
                if let error = error {
                    self.presentSimpleAlert(title: "Error changing password", message: error.localizedDescription, completion: { _ in
