public static ClientServerThread joinServer(String host, Player player) {
        try {
            ClientServerThread connection = new ClientServerThread(host, player);
            connection.start();

            synchronized(connection) {
                while (connection.getStatus() != CONNECTING)
                    connection.wait();          
            }
            /*
             * In a more verbose connection routine we probably want to display the list of players and server map
             */
            connection.joinGame();
            return connection;     
        } catch (UnknownHostException e) {
            JOptionPane.showMessageDialog(null, "Unable to resolve server name " + e.getMessage());
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Network error occured: " + e.getMessage());
        } catch (InterruptedException e) {
            // someone interrupted our thread, silently die
        }  
        return null;

    }