implement make_checkpoint