update program struct