Models: Add caching system