Well sort of - apologies to the purists but this is my attempt at sorting out some of the elements of the program. All feedback and improvements gratefully received Notes Draw Primitives are elements of drawing or images which can be combined to create the graphical representation of an object. Each FS Object knows how to use these primitives to draw itself. FS Objects Need a base class or interface from which they all inherit. Objects need to know how to draw themselves and also how to generate their source code (XML or otherwise) for compilation. Plug In Manager If new object types can be created using the SDK then the Plug In Manager handles the inclusion of these into FS Objects. GUI Needs to be independent of the rest of the program and uses the Model View Presenter to do this. I guess that the model is actually the DATA package so does not need to be shown in the GUI??