public Wizard(String password) throws IOException {
        // Netzwerk initialisieren
        LOG.debug("initializing ConnectionListener...");
        cl = new ConnectionListener(Settings.getPortNumber(), password, packetqueue);
        LOG.debug("initializing done");

        // Warten auf Start Kommando. bis dahin Beitritt zum Spiel möglich.
        LOG.debug("entering pre game loop... (lobby)");
        while (inLobby) {
            packetqueue.waitForPacket();
            IPacket temp = packetqueue.getPacket();
            if (!(temp instanceof PToServer)) {
                LOG.warn(String.format("Server received packet of a client type: %s", temp.getClass().getSimpleName()));
            }
            PToServer p = (PToServer) temp;
            p.doWork(this);
        }

        LOG.info("Shutting ConnectionListener down: Future joins not possible!");
        cl.interrupt();

        // In einer Schleife durch die Paket Schlange gehen.
        // Abbruch wenn Spiel zu Ende
        LOG.debug("entering game loop...");
        while (!table.gameFinished() && inGame) {
            packetqueue.waitForPacket();
            IPacket temp = packetqueue.getPacket();
            LOG.debug("Server received " + temp.getClass().getSimpleName());
            if (!(temp instanceof PToServer)) {
                LOG.fatal(String.format("Server received packet of a client type: %s", temp.getClass().getSimpleName()));
            }
            PToServer p = (PToServer) temp;
            p.doWork(this);
        }
        LOG.debug("finished game loop.");

        // Zusammenfassung vom Spiel ausgeben.
        cl.interrupt();

        LOG.debug("game done.");
    }