Client refactoring: start