OK so I confess that I originally rejected the XOR rather quickly. But I just didn't see the point in using an algorithm that was potentially inferior to the old one given that it had potential unresearched loopholes. Meanwhile after more consideration of the xor insead of modulo, I found a loophole (see elsewhere in thread)