docs: public void run(LinkListener l) throws KNXException
  	{
  		createMonitor(l);
  		final Thread sh = registerShutdownHandler();
  		// TODO actually, this waiting block is just necessary if we're in console mode
  		// to keep the current thread alive and for clean up
  		// when invoked externally by a user, an immediate return could save one
  		// additional thread (with the requirement to call quit for cleanup)
  		try {
  			// just wait for the network monitor to quit
  			synchronized (this) {
  				while (m.isOpen())
  					try {
  						wait();
  					}
  					catch (final InterruptedException e) {}
  			}
  		}
  		finally {
  			Runtime.getRuntime().removeShutdownHook(sh);
  		}
  	}