it's better add __attribute__ ((packed))