improvement on doISend()