deletion algorithms