add << >> & | bitwise-not xor functions