EM function added