impl pack()