Add upgrade functionality