fixed caching for performance