refactored BinOperators