client's whole flow