added binary operator support