checkpointing, a lot of changes