use normal union struct instead of annonymous unions