add smart_attributes support