[fix] add caching