The base class defines the "failure" case, so that unless the subclasses override this, the call will fail. This is done so that subclasses need only define the calls that they want to support, and the remaining calls will fail automagically
Source from the content-addressed store, hash-verified