framework used in persistent data structure