improved destruct; used destruct in core compiler