added coupon functionality