rearranged GUIInterface to be more modularized