added probabilistic descent