checkpoints and reverse