added EM and LBFGS