checkpoint, everything after this is v2