shared_ptr work.