new receiver logic