Revert "Revert some of the USB changes" - Didn't compile, will have to find another way of doing this.

This reverts commit 838f3d86bf32b0496ebf0288516bc8c0d629dde6.