Improve modulo function