Add caching
Fix test