worked on receive buffer