added virtual destructor and whitespace