refactoring, criterias