VTS has been structured so that one application can inherit and then expand upon the features of another application. You can think of each application as a building block, with the top-most blocks inheriting the features of the blocks upon which they are based. Thus, a custom tag type or set of graphics added to a lower application are instantly available to the upper layers.

Reusability: Inheritance from lower application layers to upper application layers ensures reusability of the features and functionality of the lower layers. For example, if you have a custom layer that contains a set of custom tag types, you can use that custom layer as the basis for multiple application layers, all of which will have access to your custom objects.
Extensibility: New functionality can easily be "plugged in" to a lower layer without changing the structure of all upper layers that are based upon it. For example, the custom tag added to a lower level can be extended with new features. As long as the older features are not changed, applications built upon this layer will continue to work without interruption.