dif refactoring.