delete op impl