update: subclass overriding