returning the shared_ptr