Moved caching logic to specific classes