First batch of changes.  More of a saving commit...
More gradual changes.  Got arg verification in place.
Added snapshot support, and tests.  Fixed a few typos and other nits along the way.