refactor recv()