I played with the design, where everything was an object. Every version of qemu device had it's class and I have to say it was horrible.
I left usb devices as they were before and I focused on automatic bus handling. We can then move further in the object oriented design, but we need to do that step by step.