refactoring of giftcard etc