Updated final version.