client refactoring