added m2()