more tests, refactoring Recv interface