Initial commit.

Possibly bugs exist as this is a recovery after accidentally deleting
the project.