Implement a first pass of the client