refactor tests
implement commit difference