Who is the intended user of this function? Why `[]*Packet` instead of []Packet?