Final version, minor additions to comments only.