add modulo function