checkpointing, mostly works