start : refactoring