Feature/new usb stack

get a load of this :D