destructor vs deallocation