public void trackLine()
  {
    float gain = 1.0f;// proportional control 1.0
    pilot.forward();
    boolean atMarker = false;
    int error = 0;// approximate offset from center of line, units about 0.12 mm
    LCD.clear();
    while (!atMarker)
    {                                                 
      int lval = leftEye.getLightValue();
      int rval = rightEye.getLightValue();
      float control = 0;
      LCD.drawInt(lval,4, 0, 1);
      LCD.drawInt(rval,4, 5, 1);
      atMarker = (Math.min(lval, rval) < _marker);
      if (!atMarker)
      {
        error = CLDistance(lval, rval);   
        	control =  gain * error ;
        LCD.drawInt((int)control, 4, 10, 1);
        LCD.refresh();
        pilot.steer(control);
      } else
      {
        float advance = 7.5f; // distance from light censor to wheel base
        float markerSize = 4;
        Sound.playTone(1000, 100);
        atMarker = true;
        pilot.travel(advance,true);// let the navigator do something before stopping
        while(pilot.getMovementIncrement()< markerSize); //sensor is past the marker
      }
    }
  }