add the case of virtual destruction