make dtor virtual