added modulo operation