add virtual destructor to base class