rolled back the shared_ptr workaround