remind me: 5 windows, left/mid/right/status/notice 1 thread to get time and flush status bar every 60 sec mainly 2 abstraction WIDGET <- menu/form menu_t <- menu attributes only 1 interact() widget->direct widget->enter, kinda OO like vfs wgetch/menu_driver/form_driver/item_userptr/field_userptr, lib func wgetch -> interact -> direct/enter -> driver/userptr stack to store bill items for the sake of unsubscription every decode() updates acc/stocks fields in db sure() just updates table bill according to all TOTALs