refactoring, adding caching
refactoring, adding test filters