improved diffing and add separate patch command