Trying to seperate data and representation.
This commit add the data classes. These however are not yet used by
the rendering code.