Proper upgrade functionality