use check_delete() instead of native delete