switch to const shared_ptr&