shared_ptr attempt