this func be named 'RecvOrNil'. much better?