public ThinkTankGUI(String host, int port) {
		try {
			setTitle("Think Tank");
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			setSize(Settings.GUI_WIDTH, Settings.GUI_HEIGHT);
			setLocationRelativeTo(null);
			setVisible(true);
			setResizable(false);
			this.addWindowListener(new java.awt.event.WindowAdapter() {
			    @Override
			    public void windowClosing(java.awt.event.WindowEvent windowEvent) {
			    	try {
			    		if (inGameConfirmForeit(ThinkTankGUI.this)) {
				    		centralConnection.close();
					    	if (gameScreen.gameConnection !=null) {
					    		gameScreen.gameConnection.thread.interrupt();
					    		gameScreen.gameConnection.close();
					    	}
					    	ThinkTankGUI.this.dispose();
			    		}
		    		} catch (IOException e) {
						e.printStackTrace();
			            System.exit(0);
					}
			    }
			});

			Helper.log("Connecting to " + host + ":" + port);
			centralConnection = new ConnectionToCentralServer(this, host, port); // Connects to central server
			mainPanel = new JPanel();
			mainPanel.setPreferredSize(new Dimension(Settings.GUI_WIDTH, Settings.GUI_HEIGHT));
			mainPanel.setLayout(cardLayout);
			add(mainPanel);
			
			
			menuBar = new JMenuBar();
			menu = new JMenu("File");
			menuBar.add(menu);
			mainMenuItem = new JMenuItem("Main Menu");
			mainMenuItem.addActionListener(new MainMenuListener(this));
			exitItem = new JMenuItem("Exit");
			exitItem.addActionListener(new CloseWindowListener(this));
			menu.add(mainMenuItem);
			menu.add(exitItem);
			this.setJMenuBar(menuBar);

			/* SCREENS:
			 * Main Menu
			 * Stats
			 * Create Profile
			 * Create Game
			 * Waiting
			 * Join Game
			 * Battle
			 * Game Over
			 */
			
			 mainMenu = new MainMenuScreen(this);
			 mainMenu.setName(MainMenuPage);
			 createGame = new CreateGameScreen(this);
			 createGame.setName(CreateGamePage);
			 waiting = new WaitingScreen(); 
			 waiting.setName(WaitingPage);
			 lobby = new LobbyScreen(this);
			 lobby.setName(LobbyPage);
			 gameScreen = new GameScreen(this);
			 gameScreen.setName(GameScreenPage);
			 createProfile = new CreateProfileScreen(this); 
			 login = new LoginScreen(this);
			 login.setName(LoginPage);
 //			 gameOver = new GameOverScreen(this); 
			 stats = new StatsScreen(this); 
			 stats.setName(StatsPage);
			 

			 mainPanel.add(MainMenuPage, mainMenu);
			 mainPanel.add(CreateGamePage, createGame);
			 mainPanel.add(WaitingPage, waiting);
			 mainPanel.add(GameScreenPage, gameScreen);
			 mainPanel.add(LobbyPage, lobby);
			 mainPanel.add(CreateProfilePage, createProfile);
			 mainPanel.add(LoginPage, login);
			 mainPanel.add(StatsPage, stats);
//			 mainPanel.add(gameOver);

			 cardLayout.show(mainPanel, "mainMenu");

			 Helper.log("Finished ThinkTankGUI Constructor");
		} catch (UnknownHostException e) {
			Helper.log("Unable to connect to central server");
		} catch (IOException e) {
			Helper.log("Unable to connect to central server: " + e.getMessage());
		}
	}