override all known attrs and methods instead of allowing subclass to override in failure case