add self-destory option