Updates the UI if the user cancels the login process, so it looks less hangy. Improves the way the submission is stored in the model. Moves logic from the view to the model.