add native EM algorithm