To make the user interface reasonably independent of the underlying widget set, a procedural wrapping layer has been introduced. Widgets are thus only instantiated, accessed, and modified using class-specific functions, in contrast to the original X Toolkit concept that promotes the use of generic X Toolkit functions with class-specific data. Despite its numerous object-oriented advantages, a shortcoming of the X Toolkit is that it does not use and enforce data hiding - applications often have to access widget-specific resources to create a desired layout and behavior. The procedural wrapping provided by the widget set wrapping layer will facilitate the potential migration of the entire user interface onto another X Toolkit-based platform, should the need arise. This would not be possible when applications use directly the data-driven generic X Toolkit interface.
Furthermore, in Section 4.3 it will be shown that the link between user interface and task level programming environment can be implemented with a unified method which ideally fits the procedural wrapping layer.