rewrite async send data code