added self-destruct