add upgrade method