Index: trunk/src/org/expeditee/auth/Actions.java
===================================================================
--- trunk/src/org/expeditee/auth/Actions.java	(revision 1347)
+++ trunk/src/org/expeditee/auth/Actions.java	(revision 1348)
@@ -263,40 +263,54 @@
 		if (userdata.isPresent()) {
 			Map<AuthenticationTag, String> userData = userdata.get();
-			
 			String username = userData.get(AuthenticationTag.Username);
-			Path credentialsDirPath = Paths.get(FrameIO.PROFILE_PATH).resolve(username).resolve(username + "-credentials");
-			Path credentialsFilePath = credentialsDirPath.resolve("credentials.inf");
-			String fileName = null;
-			if (credentialsFilePath.toFile().exists()) {
-				try (Scanner in = new Scanner(credentialsFilePath)) {
-					fileName = in.nextLine();
-				} catch (IOException e) {
-					MessageBay.errorMessage("Unable to locate public email for specified user, are they registered on this computer?");
-					return;
-				}
-			} else {
+			String email = getEmailFromUsername(username);
+			userData.put(AuthenticationTag.Email, email);
+			Password.generateAndDeliverIntergalacticNumber(userData);
+			MessageBay.displayMessage("A Intergalactic number has been sent to the email associated with your account.  Enter it below to proceed.");
+		}
+	}
+	
+	public static void AuthResetPasswordPt2() {
+		Collection<Text> textItems = DisplayController.getCurrentFrame().getTextItems();
+		Optional<Map<AuthenticationTag, String>> userdata = AuthenticationTag.fetchUserData(textItems, false, AuthenticationTag.Username, 
+				AuthenticationTag.IntergalacticNumber, AuthenticationTag.NewPassword, AuthenticationTag.NewPasswordAgain);
+		if (userdata.isPresent()) {
+			Map<AuthenticationTag, String> userData = userdata.get();
+			String username = userData.get(AuthenticationTag.Username);
+			String email = getEmailFromUsername(username);
+			userData.put(AuthenticationTag.Email, email);
+			Password.confirmIntergalacticNumberAndGenerateSubstituteAccount(userData);
+		}
+	}
+	
+	private static String getEmailFromUsername(String username) {
+		Collection<Text> textItems = DisplayController.getCurrentFrame().getTextItems();
+		Path credentialsDirPath = Paths.get(FrameIO.PROFILE_PATH).resolve(username).resolve(username + "-credentials");
+		Path credentialsFilePath = credentialsDirPath.resolve("credentials.inf");
+		String fileName = null;
+		if (credentialsFilePath.toFile().exists()) {
+			try (Scanner in = new Scanner(credentialsFilePath)) {
+				fileName = in.nextLine();
+			} catch (IOException e) {
 				MessageBay.errorMessage("Unable to locate public email for specified user, are they registered on this computer?");
-				return;
-			}
-			
-			int number = Integer.parseInt(fileName.replace(".exp", ""));
-			Frame credentialsFrame = FrameIO.LoadFrame(username + number, FrameIO.PROFILE_PATH);
-			textItems = credentialsFrame.getTextItems();
-			textItems.removeIf(text -> !text.getText().startsWith("Email: "));
-			if (textItems.isEmpty()) {
-				MessageBay.errorMessage("Unable to locate public email for specified user, are they registered on this computer?");
-				return;
-			} else {
-				Text emailText = textItems.iterator().next();
-				String email = emailText.getText().replace("Email: ", "");
-				userData.put(AuthenticationTag.Email, email);
-				Password.generateAndDeliverIntergalacticNumber(userData);
-				MessageBay.displayMessage("A Intergalactic number has been sent to the email associated with your account.  Enter it below to proceed.");
-			}
-		}
-	}
-	
-	public static void AuthResetPasswordPt2() {
-		MessageBay.displayMessage("AuthResetPasswordPt2");
+				return null;
+			}
+		} else {
+			MessageBay.errorMessage("Unable to locate public email for specified user, are they registered on this computer?");
+			return null;
+		}
+		
+		int number = Integer.parseInt(fileName.replace(".exp", ""));
+		Frame credentialsFrame = FrameIO.LoadFrame(username + number, FrameIO.PROFILE_PATH);
+		textItems = credentialsFrame.getTextItems();
+		textItems.removeIf(text -> !text.getText().startsWith("Email: "));
+		if (textItems.isEmpty()) {
+			MessageBay.errorMessage("Unable to locate public email for specified user, are they registered on this computer?");
+			return null;
+		} else {
+			Text emailText = textItems.iterator().next();
+			String email = emailText.getText().replace("Email: ", "");
+			return email;
+		}
 	}
 	
Index: trunk/src/org/expeditee/auth/account/Password.java
===================================================================
--- trunk/src/org/expeditee/auth/account/Password.java	(revision 1347)
+++ trunk/src/org/expeditee/auth/account/Password.java	(revision 1348)
@@ -90,3 +90,23 @@
 		}
 	}
+	
+	public static void confirmIntergalacticNumberAndGenerateSubstituteAccount(Map<AuthenticationTag, String> userData) {
+		String username = userData.get(AuthenticationTag.Username);
+		String email = userData.get(AuthenticationTag.Email);
+		String intergalacticNumber = userData.get(AuthenticationTag.IntergalacticNumber);
+		String newPassword = userData.get(AuthenticationTag.NewPassword);
+		String newPasswordAgain = userData.get(AuthenticationTag.NewPasswordAgain);
+		
+		try {
+			boolean match = AuthenticatorBrowser.getInstance().confirmIntergalaticNumber(username, email, intergalacticNumber);		
+			if (match) {
+				MessageBay.displayMessage(":)");
+			} else {
+				MessageBay.displayMessage(":(");
+			}
+		} catch (NoSuchAlgorithmException | KeyStoreException | CertificateException | ClassNotFoundException
+				| IOException | SQLException e) {
+			e.printStackTrace();
+		}
+	}
 }
