public void go(){
    	theGui=this;
    	frame.getContentPane().removeAll();
    	dealerTurn = false;
    	playerTurn = 1;
    	canPlayer1DD =true;
    	canPlayer2DD =true;
    	canPlayer3DD =true;
    	canPlayer4DD =true;

	//create menubar
	createMenuBar();
	// create dealer's label
	createDealerLabels();
	// create 1st player's label
	create1stPlayersLabel();
	//create 2nd player's label
	create2ndPlayersLabel();
	// create 3rd player's label
	create3rdPlayersLabel();
	// create card displays for all players
	createCardDisplayForAllPlayers();
	// create the 'hit' and 'stay' buttons	
	createHitAndStayButtons();
		
    	// background music
    	song.play();
    	song.loop();

	// remove the bet amount from all of the players' total money
    	updateMoney();

    	dealerPanel.add(new JLabel(getMyImage(game.getDealer().getHand().getFirstCard())));
    	URL myURL = getClass().getResource("/images/b1fv.gif");
    	ImageIcon myImage = new ImageIcon(myURL);
    	downCard = new JLabel(myImage);
    	dealerPanel.add(downCard);
    	dealerLabel.setText(game.displayDealerCardValue());




	// display total pot
    	totalPot = 0;
    	updateTotalPot(amountBet*(numPlayers+1));

    	displayPanel.add(totalPotLabel);


    	/*********************************/
    	/** Prepare the blackjack table **/
    	/*********************************/

	// add 1st player's labels and starter cards to the panel
    	cardsPanelS = new JPanel();
    	cardsPanelS.setOpaque(true);
    	cardsPanelS.setBackground(currentColor);
    	cardsPanelS.setAlignmentX(Component.CENTER_ALIGNMENT);
    	cardsPanelS.setLayout(new BoxLayout(cardsPanelS, BoxLayout.X_AXIS));
	cardsPanelS.setBorder(BorderFactory.createEmptyBorder(10,100,10,10)); // keep cards aligned 
	cardsPanelS.add( new  JLabel(getMyImage(game.getPlayerS().getHand().getFirstCard())), BorderLayout.WEST); // add first card
	card2LabelS = new JLabel(getMyImage(game.getPlayerS().getHand().getSecondCard()));
	cardsPanelS.add(card2LabelS, BorderLayout.WEST); // add second card

	cardLabelS = new JLabel("Hand Value: " + game.getPlayerS().getHand().displayHandValue());	
	card1LabelArray[0] = cardLabelS;
	
	playerPanelS.setLayout(new BoxLayout(playerPanelS, BoxLayout.Y_AXIS));
	playerPanelS.setOpaque(true);
	playerPanelS.setBackground(currentColor);
	playerPanelS.setAlignmentX(Component.CENTER_ALIGNMENT); 
	playerPanelS.add(playerLabelS); // name of player
	playerPanelS.add(cardsPanelS); // cards in hand
	playerPanelS.add(cardLabelS); // value of cards
	playerPanelS.add(playerLabelSM); // amount of money
	playerPanelS.add(playerLabelSWinLoss);
	playerPanelS.add(playerLabelSMWonLost);

	// add 2nd player's labels and starter cards to the panel
	cardsPanelE = new JPanel(); 
	cardsPanelE.setOpaque(true);
	cardsPanelE.setBackground(currentColor);
	cardsPanelE.setAlignmentX(Component.CENTER_ALIGNMENT);
	cardsPanelE.setLayout(new BoxLayout(cardsPanelE, BoxLayout.X_AXIS));
	cardsPanelE.setBorder(BorderFactory.createEmptyBorder(10,100,10,10)); // keep cards aligned 
	cardsPanelE.add( new  JLabel(getMyImage(game.getPlayerE().getHand().getFirstCard())), BorderLayout.EAST); // add first card
	card2LabelE = new JLabel(getMyImage(game.getPlayerE().getHand().getSecondCard()));
	cardsPanelE.add(card2LabelE, BorderLayout.WEST); // add second card

	cardLabelE = new JLabel("Hand Value: " + game.getPlayerE().getHand().displayHandValue());	
	card1LabelArray[1] = cardLabelE;
	playerPanelE.setLayout(new BoxLayout(playerPanelE, BoxLayout.Y_AXIS));
	playerPanelE.setOpaque(true);
	playerPanelE.setBackground(currentColor);
	playerPanelE.setAlignmentX(Component.CENTER_ALIGNMENT); 
	playerPanelE.add(playerLabelE); // name of player
	playerPanelE.add(cardsPanelE); // cards in hand
	playerPanelE.add(cardLabelE); // value of cards
	playerPanelE.add(playerLabelEM); // amount of money
	playerPanelE.add(playerLabelEWinLoss);
	playerPanelE.add(playerLabelEMWonLost);


	// add 3rd  player's labels and starter cards to the panel
	cardsPanelW = new JPanel(); 
	cardsPanelW.setOpaque(true);
	cardsPanelW.setBackground(currentColor);
	cardsPanelW.setAlignmentX(Component.CENTER_ALIGNMENT);
	cardsPanelW.setLayout(new BoxLayout(cardsPanelW, BoxLayout.X_AXIS));
	cardsPanelW.setBorder(BorderFactory.createEmptyBorder(10,100,10,10)); // keep cards aligned 
	cardsPanelW.add( new  JLabel(getMyImage(game.getPlayerW().getHand().getFirstCard())), BorderLayout.WEST); // add first card
	card2LabelW = new JLabel(getMyImage(game.getPlayerW().getHand().getSecondCard()));
	cardsPanelW.add(card2LabelW, BorderLayout.WEST); // add second card

	cardLabelW = new JLabel("Hand Value: " + game.getPlayerW().getHand().displayHandValue());	
	card1LabelArray[2] = cardLabelW;
	playerPanelW.setLayout(new BoxLayout(playerPanelW, BoxLayout.Y_AXIS));
	playerPanelW.setOpaque(true);
	playerPanelW.setBackground(currentColor);
	playerPanelW.setAlignmentX(Component.CENTER_ALIGNMENT); 
	playerPanelW.add(playerLabelW); // name of player
	playerPanelW.add(cardsPanelW); // cards in hand
	playerPanelW.add(cardLabelW); // value of cards
	playerPanelW.add(playerLabelWM); // amount of money
	playerPanelW.add(playerLabelWWinLoss);
	playerPanelW.add(playerLabelWMWonLost);

    

	// set all the player+dealer+buttons panels into proper positions in the frame
	frame.getContentPane().add(BorderLayout.NORTH, dealerPanel);
	frame.getContentPane().add(BorderLayout.CENTER, displayPanel);
	frame.getContentPane().add(BorderLayout.SOUTH, playerPanelS);
	frame.getContentPane().add(BorderLayout.EAST, playerPanelE);
	frame.getContentPane().add(BorderLayout.WEST, playerPanelW);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	//frame.setSize(10000,10000);
	frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
	frame.pack();
	setSplit();
	
	// This section is for a new round of Blackjack
	if(keepRunning == true){
	    if(numPlayers == 0) {
		song.stop();
		frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
	    }
	    if(numPlayers == 1){
		cardLabelS.setText(game.getPlayerS().displayHandValue());
		frame.remove(playerPanelE);
		frame.remove(playerPanelW);
		//frame.setSize(1000,1000);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
	    }
	    else if(numPlayers == 2){
		cardLabelS.setText(game.getPlayerS().displayHandValue());
		cardLabelE.setText(game.getPlayerE().displayHandValue());
		frame.remove(playerPanelW);
		//frame.setSize(800,600);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

	    }
	    else if(numPlayers == 3){
		cardLabelS.setText(game.getPlayerS().displayHandValue());
		cardLabelE.setText(game.getPlayerE().displayHandValue());
		cardLabelW.setText(game.getPlayerW().displayHandValue());
		//frame.setSize(1000,600);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);	    
	    }
	    displayLabel.setText("New Round, " + p1Name + "'s turn");
	    frame.setLocationRelativeTo(null);
	    frame.getContentPane().setBackground(currentColor);
	    //frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
	    frame.setVisible(true);
	}
    }