Changed Attribute to be a class, added lots of methods, rearranged the enum, etc.