Donut applied PIMPL.
applied QScopedPointer<>, QSharedPointer<>