refactoring customer interface