main structure update