Final commit. This is the submitted version.