client refactorings