public static void main(String [] args)
   {
      JFrame gameWindow = new JFrame("Monopoly");
      JPanel gameBoard = setUpBoard();
      gameWindow.add(gameBoard, BorderLayout.CENTER);
      
      gameWindow.setVisible(true);
      gameWindow.setSize(880,650);
      gameWindow.setResizable(false);
      gameWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      // Set up a custom input dialog
      String [] options = {"OK"};
      JPanel panel1 = new JPanel();
      JLabel lbl1 = new JLabel("How many people are playing?");
      JTextField txt = new JTextField(10);
      panel1.add(lbl1);
      panel1.add(txt);

      String input = null;
      while (input == null)
      {
         int selectedOption = JOptionPane.showOptionDialog(
                                      null, 
                                      panel1, 
                                      "Get ready to Monopolize", 
                                      JOptionPane.NO_OPTION, 
                                      JOptionPane.QUESTION_MESSAGE, 
                                      null, 
                                      options, 
                                      options[0]
                                    );
            if(selectedOption == 0)
            {
               input = txt.getText();
            } 
      }

      int playerNum = Integer.parseInt(input);

      // Create a CircularLinkedList of Players to be 
      // populated in the following for loop
      CircularLinkedList players = new CircularLinkedList();

      // Set up another custom input dialog
      JPanel panel2 = new JPanel();
      JLabel lbl2 = new JLabel();
      panel2.add(lbl2);
      panel2.add(txt);

      for (int i = 1; i <= playerNum; i++)
      {
         String p = null;
         lbl2.setText("What is player "+i+"'s name?");
         while (p == null)
         {
            int selected = JOptionPane.showOptionDialog(
                                       null, 
                                      panel2, 
                                      "Get ready to Monopolize", 
                                      JOptionPane.NO_OPTION, 
                                      JOptionPane.QUESTION_MESSAGE, 
                                      null, 
                                      options , 
                                      options[0]
                                    );
            if(selected == 0)
            {
               p = txt.getText();
            } 
         }

         // icon stuff
         String [] choices = {"Cannon", "Dog", "Hat", "Horse", "Iron", "Ship", "Thimbal", "Wheelbarrow"};
         String iconChoice = null;
         while (iconChoice == null)
         {
            iconChoice = (String)JOptionPane.showInputDialog(
                                   null,
                                   "Which token does player "+i+" want?",
                                   "Get ready to Monopolize",
                                   //JOptionPane.DEFAULT_OPTION,
                                   JOptionPane.QUESTION_MESSAGE,
                                   null,
                                   choices,
                                   choices[0]
                                );
         }
         ImageIcon icon = new ImageIcon("images/"+iconChoice+".png");

         Player pl = new Player(p, icon);
         
         players.add(pl);
      }

      /**
       * Instantiate the ControlPanel and pass it the list of Players,
       * then start the game by calling takeATurn.
       */
      ControlPanel controlPanel = ControlPanel.getInstance();
      controlPanel.setList(players);

      gameWindow.add(controlPanel, BorderLayout.EAST);

      controlPanel.takeATurn((Player)players.getNodeAt(0).getData());
   }