{
                index = c(index, rep(i, classes[i]))
                newXblock = cbind( MASS::mvrnorm(classes[i], zero_mean, id_sigma), 1 )
-               arg_link = newXblock%*%β[,i]
+               arg_link = newXblock %*% β
                probas =
                        if (link == "logit")
                        {
                        else #"probit"
                                pnorm(arg_link)
                probas[is.nan(probas)] = 1 #overflow of exp(x)
+               probas = rowSums(p * probas)
                X = rbind(X, newXblock)
-               Y = c( Y, vapply(probas, function(p) (rbinom(1,1,p)), 1) )
+               Y = c( Y, vapply(probas, function(p) (ifelse(p >= .5, 1, 0)), 1) )
+               #Y = c( Y, vapply(probas, function(p) (rbinom(1,1,p)), 1) )
        }
        shuffle = sample(n)
        # Returned X should not contain an intercept column (it's an argument of estimation