checkpoint functionality added