implement differences detection