Also should be a virtual destructor.