added remainder operator