make traverse cancelable