improved send_all