Working final version.