some compilers dont like unnamed unions and structs