public USBHost ()
	throws IOException
	{
	    super (null, null);

	    if ((host = HostFactory.getHost ()) == null)
		throw new RuntimeException ("USB is not available");
	    busses = new Bus [0];	// NPE guard
	    host.addUSBListener (new USBListenerProxy (this));
	    busses = host.getBusses ();

	    // XXX want runtime choice of which display mode
	    // to use:  flattened or hierarchical

	    hubs = new HubNode [busses.length];
	    for (int i = 0; i < hubs.length; i++)
		hubs [i] = new HubNode (busses [i].getRootHub (), this);
	    
	}