add destructor logic