Lots of reformatting to make things easier to read.
Make USB easy to configure and easy to add custom device types.