destructor should always be virtual (at least in mailcore2).