Refactored and added an ability to prevent caching