destructor improvement