good start, but send/receive is in tight cpu loop