Why does this have to inherit from base.Dat?

It seems more like a PETSc Vec mixin than a fully-fledged Dat.