added unary ops and "binary" xor