Add usb backend and complete frontend interface