added checkpoint and fixed NSDI bug