Mark and Sweep(full(optimised)) check point