redo struct packing