first implement of gui_struct.go