RefCounter mimics std::shared_ptr