why do we need this destructor?