updated with more checkpoints