almost complete GUI