Cache refactoring (added IRevisionProvider)