changed delegate to has_attributes