The user of a software application does not care how the data are stored in memory, except perhaps if excess memory is used. What the user cares strongly about, however, is how the data are rendered on the screen and how the data can be located, inspected, analyzed and further processed. The majority of image processing software has adopted the use of layering for these purposes. This includes some kind of z- ordering for displaying images on top of each other and tools and techniques that lets the user access and manipulate the different layers. In this paper we will discuss the next step from simple layering: the concept of data object compositions. Finally we will see how to access some of the special classes' functionality. A lot of classes in our hierarchy will have some special abilities that aren't covered by the common interface. These abilities have to be exposed to the user.