dealing with strict aliasing rules