compile structs