Checkpoint commit

I think we are feature complete! Code still needs some comments
and error checking/handling.