added general gmm