change backtracking interface. optimize unit test.
modify interface.