using gui_api and gui_event_processing