A few improvements; prototype is near.