Committed the latest version, 2.0.

A complete redesign of the code from version 1 should make this much
more versatile and stable.