public void processRegister() {
        String passwordEntered = null;
        String username = null;
        char playerType = 'a';

        System.out.println("\n== BattleStations :: Registration ==\n");

        
        boolean userDoesNotExist = false;
        do{
            System.out.print("Enter your username > ");
            username = sc.nextLine();

            if (appCtrl.validateUsername(username)){
                userDoesNotExist = true;
            } else{
                System.out.println("Username has been taken. Choose a new username.");
            }
        } while (!userDoesNotExist);

        boolean samePassword = false;
        do{
            System.out.print("Enter your password > ");
            passwordEntered = sc.nextLine();
            System.out.print("Confirm your password > ");
            String passwordConfirmed = sc.nextLine();

            if (passwordEntered.equals(passwordConfirmed)){
                samePassword = true;
            } else{
                System.out.println("Password provided are not the same. Please reenter your password.");
            }
        } while (!samePassword);

        
        boolean correctPlayerType = false;
        do{
            System.out.print("Choose your player type -- (P)irate / (E)xplorer > ");
            String userSelectType = sc.nextLine().trim().toUpperCase();
            playerType = userSelectType.charAt(0);

            if (playerType=='P' || playerType == 'E'){
                correctPlayerType = true;
            } else{
                System.out.println("Invalid player type! please choose (P)irate / (E)xplorer!");
            }
        } while (!correctPlayerType);
        
        try{
            appCtrl.addPlayer(username, passwordEntered, playerType);
            System.out.println();
            System.out.println("Account successfully created.");
            MainMenu m = new MainMenu(appCtrl);
            m.readOption();
        } catch (DataException e){
            
        }
    }