further tidying up of the graphics objects, used a bit of multiple inheritance, which I hear is 'smelly', we'll see.