use StructAppend instead loop for extend