final upgade