implemented GUISystem