destructor updated