should the cleanup the user supplied happen even if oldSelf's cleanup fails?