more refactoring -- now server doesn't touch clients