[SPARKL-39] major refactoring, implementing a cache for the file differences