Compiles on OS X

compiles on Mac.

BTW, we need pure virtual functions for these kind of interfaces.