shared_ptr is changed to unique_ptr