added distributed notion of gradient descent