add recev funciton