enhanced destroy method