new rollback/checkpoint implementation