I think we don't need to talk about the failure case