public void processPVP(){
        String choice = null;
        boolean validChoice = false;

        do{
            System.out.println();
            System.out.println("== BattleStations :: PVP ==");
            ArrayList<Player> targets = showPlayerList();
            try {
                choice = sc.nextLine().trim().toUpperCase();
                System.out.println();
                
                if(choice.equals("M")){
                    validChoice = true;
                    this.readOption();
                } else { 
                    try{
                        int input = Integer.parseInt(choice);

                        if (input >= 1 && input <= targets.size()){
                            validChoice = true;
                            BattleMenu pvp = new BattleMenu(appCtrl);
                            pvp.fight(input, targets);

                        } else{
                            System.out.println("Invalid Input!!!");
                        }
                    }catch (NumberFormatException e){
                        System.out.println("Invalid Input!!!");
                    } 

                }

            } catch (InputMismatchException e) {
                // display error message
                System.out.println("Please enter a valid option!");
                sc.nextLine();
            } catch (DataException e){
                System.out.println(e.getMessage());
            }

        } while (!validChoice);
    }