add initial upgrade function