Optimize applyBinaryOp, close #5