updated monte carlo alg