public ArrayList<Team> makeTeams(){
        int counter = 0;
        int direction = 1;
        boolean flipped = true;
        //Makes initial teams, should be relatively fair based on snaking pattern
        for(Person person : people){
            teams.get(counter).addMember(person);
            if ((counter == numTeams - 1 || counter == 0) && !flipped){
                direction *= -1;
                flipped = true;
            }
            else{
                counter += direction;
                flipped = false;
            }
        }
        //insertionsort, so they are all in order
        //The lists should always be very small, so the overhead of more complex sorting methods is not necessary
        sortTeams();

        
        //step 3: make swaps
        int count = 100;
        while (!isDone() && count > 0){
            count--;
            sortTeams();
            swapEngine(0,teams.size()-1);
        }
        System.out.println("COunt:" + isDone());
        count = 100;
        while(count > 0){
            if(swapForRequest() == false){
                System.out.println("Broken");
                break;
            }
            else
            count--;
        }
        
        sortTeams();
        for (Team team : teams){
            
            sortList(team.members);
            System.out.println(team.value);
        }
             
        return teams;
    }