I was just brainstorming about the API. It seems subtly wrong that subclasses should have to explicitly call their parent class to check for None - they should be able to just ignore the possibility of None and have it handled automatically by the parent class. We effectively want a kind of reverse inheritance - we want a method on the parent class to override its subclasses, and be able to call the subclass method as necessary. Unfortunately, the closest we have to that is to rename the methods on the subclasses.