stops upon reaching equilibrium