Replaced clone strategy with do/undo strategy for backtracking