Reintroduce "inheritance" with a base class

I'd like to see how this breaks tests on Travis, so that we can fix it properly. Things don't work without the inheritance.