general refactoring to separate general USB functionality from MIDI