added virtual destructor to Callback