type backtrack