Tried again.

This is an initial commit to V2. A lot of undone things in it.