working on struct packing