Refactoring -- add classes provider with redis cache