add mod function