support genuine backtracking