refactor customer