add self destroy feature