adding virtual destructor