TODO: backtracking local, freeshift