adaptive backtracking algorithm avoids shadows