finished GUI components and listeners