Initial commit

Committing what's done so far (untested).