Merge "Revert "Revert "Extract out common adapter logic to support diff..."" into tm-dev