refactor attribute metamodel (again) for #196