moved operator overloads into Expression