control flow from client