improve struct packing