implemented send, sendwithretry, ackreceived, ackrequested, and sendack