add documentation and add Attr.Auto