adding virtual abstract destructors to baseclasses