Use AttributeInterface instead of AbstractAttribute