fixed non-virtual destructor