lesson 3: attribute and uniform