I'm not sure about this base class. It's a different pattern from the other models that have merged feeds and modules as the store of common functionality. Why the need for a different pattern? And, what do you gain apart from a very Java-like abstract method (append) that has no reason to exist?