begin client refactor
Implement the rest of the new server interface