remove redundant destructors
do not specify (virtual) default destructor in derived classes when the base class already explicitly defines one
do not specify (virtual) default destructor in derived classes when the base class already explicitly defines one