internal structure update