added a newer can_receive function