 
         moveJoints(2, stepDown);
 
-        stop = true;
+        if (random(2))
+        {
+            turnLeft();
+        }
+        else
+        {
+            turnRight();
+        }
+
+        startStepFoward();
+
         return;
     }
 }
 
-void setup() {
+
+void setup()
+{
     pinMode(SR04_TRIGGER_PIN, OUTPUT);
     pinMode(SR04_ECHO_PIN, INPUT);
+
+    randomSeed(analogRead(RANDOM_SEED_PIN));
     
     rightAnkle.init();
     leftAnkle.init();


    if (!started)
    {
        Move startLeanLeft[] = { 
            Move(&rightAnkle, Joint::POS_MIDDLE, Joint::POS_MIN), 
            Move(&leftAnkle, Joint::POS_MIDDLE, Joint::POS_MIN)
        };

        delay(5000);

        moveJoints(2, startLeanLeft);

        started = true;
    }

    if (!stop)
    {
        stepForward();
    }
}


#define LEFT_HIP_PIN            2
#define SR04_TRIGGER_PIN        8
#define SR04_ECHO_PIN           9
#define RANDOM_SEED_PIN         A0      // Take noise from unconnected analog pin to seed RNG

#define DELAY                   1500
#define STOP_DISTANCE           20

struct Joint
{
