reduce spamminess
abstract usb ports; separate out enumeration and new device detection code