This hierarchy allows a single class to support attributes. @since 3.0