@Override
  public void connectionLost(CommunicationPartner partner, ConnectionProblemException ex) {
    partners.remove(partner);
    listener.connectionLost(partner, ex);

    startListen(); // TODO: correct?
  }
        @Override
        public boolean connectionEstablished(IRemoteConnection connection) {
          ICommunicationPartner partner =
              new CommunicationPartner(ServerCommunication.this, connection);
          partners.add(partner);
          listener.newPartner(partner);
          partner.initialized();

          return !hasMaxPlayersConnected();
        }
        @Override
        public boolean error(Exception ex) {
          listener.socketListenerProblem(ex);

          return false; // TODO: Let the listener deceide
        }