factors and caching