add modulus function