checkpoint, better, one more bug still exists
all fixed, using better interpolation