I was about to comment that we don't really need the union in the struct, but this is nice use case for it.