refactring Differ