extended checkpoint class, added some tests