Add more documentation.

Also, move some files around.