added shallow diff