source structure update