reverted to old low level usb implementation