Patches
Plain Diff
Code is getting complex and changed a lot, it fits better in its own file. issue #3710