I recoded the line follower to use behaviors. It doesn't really seem to be an improvement in terms of clarity, though there may be better ways of coding it. Take a look here.
For the next step, I want to try out the Navigator API, in its TimingNavigator version. I will return to this in a later posting. The TimingNavigator takes parameters specifying the time to travel a standard linear distance, and to make a rotation. To help determine these, I wrote a class called the Calibrator. I was also finding myself spending some time setting the motor powers to get the robot to run straight, and finding the sensor thresholds for the light and dark levels. The class includes methods to help determine all of these. See the comments in the code for details. There is also a main method, which allows you to execute each of the tests in turn.