fix virtual destructor