Finished final version.