Added GUIElement : IGUIElement, extracted most of the generic gui code into the base class.