added support for shift along with a fix to how implBinOp is implemented