a wrapper around std::shared_ptr that cannot be null