Would you mind adding a docstring that explains which things are done in this class and which things are delegated to subclasses? Also, probably good to say whether it is an abstract class or not.