add type argument to WeixinSender