Cache names and update the query to reduce DB queries
Add some eager loading caching