Refactor checkpoint: most things now in their own classes
Refactor checkpoint: most things now in their own classes