modulo compiles, not tested