Add virtual destructor and remove .cpp

We need a virtual destructor here but can do without
the .cpp.