support for persistence and backtracking.