[98] Consider using std::weak_ptr where applicable