Does it really need to be QObject?