When the polyline has changes made, there may be other dependent objects that are affected by these changes, such as the Stats object. However, such objects may not want to update every time the polyline changes. Just as needed, if any changes have occurred in the meantime.
In order to maintain loose coupling between classes, the Polyline has a version
property. This property is meaningless in an of itself, but it increments with every modification of the structure. Therefore, interested entities can be aware of a change in the structure on demand due to the relative changes in the property and can interact with the polyline accordingly. See PolylineStats for an example of how this property can be used to hook into the Polyline object.