move model caching to module, use in profiles