refactoring customer