reverted to client-server message passing