revert, use diff method, run twice