Checkpoint commit: refactored a lot of methods to allow pre-request checking