added step functionality. Looks at a few random directions, takes a step in the direction that minimizes E.