add smart coupon support, checkout improvements and others