struct and union fix