moving to QSharedPointer