FormCommitDiff refactoring, all use one constructor