public static void main(String[] a)
  {

    // player array, in order
    Player [] players; // local var for now, while we get things in order, better than it being static

    // get the number of players
    System.out.print("How many players are there? ");
    int numPlayers = 5;
    System.out.print("\n There are " + numPlayers + " players.");

    // allocate players
    players = new Player [numPlayers];
    for(Player p : players) {
      p = new Player();
    }
    // arrange players according to how they want to be arranged
    //  around a virtual table, etc.
    // five planets per player
    // initialize the warp
    // initialize player planets
    // four ships per planet (20 total)
    // initialize player ships
    // initialize the decks
    //  initialize Destiny Deck
    //  shuffle flairs and deal to players for their alien choice
    //  put the flairs in, and top off so that there are exactly 10
    // initialize the hands of the players
    // select first player using the Destiny Deck
    //  re-initialize Destiny Deck

    Planet warp = new Planet();
    while (true)
        {
      for (Player p : players) {// go through players in order, if we ever shuffle the order, break out and loop around
        // for each loop allows us to switch containers at a later point
        // maybe catch either the concurrent modification exception or
        // throw one of our own indicating a PlayersChangedOrder exception
          // I also forgot that we can run through the phases more than once for a player (three times, I think), so we might have to have an extra loop surrounding the gamephase loop
          for (int playerTurn = 0; playerTurn < 3; ++playerTurn)
              {
        // this inner loop is fucking awful.
        // I think it needs to be switch to some more OO type thing,
        // a sort of gamephase visitor type thing
        // IDEA: maybe we have each gamephase as an actual class, and then
        // do something like gamephase.performphase(), etc.
        // e.g. in gamephases package
        for (gamePhase gp : gamePhase.values()) {
            // "activate" a players special ability if it can be used in the phase, maybe move this inside of phe phase running
            gp.doit(); // OO way of performing a phase
          // alternate
            if (gp == gamePhase.Regroup) { // explicit check for current phase
            // current player gets a ship from the warp
          }
        }
      }
      }

      break; // TODO temporary so this executes and dies
    }

  }