packed the struct