improved delete operation