Determine the Derived attribute to avoid re-computation
Each class box consists of an ordered list of attributes and operations, each represented as a next string. We can find location of any attribute by adding the size of all elements in front of it, to the location of the class box itself. If a new attribute string is added to a list, then locations of one's after it in the list are simply offset by size of the new element. If an element is deleted or moved, the elements under it must be redrawn.