finish the 2nd draft of blocking sending