use q instead of recv(), because it was ugly