Split Client::Receive into 3 functions