removed the abstractness of Attribute