latest from Ross, both client and server refactored