added XOR