Accidentally trounced on Ankur's updates. Putting his work back.