gcc 4.7: added virtual destructor