Refactor, auto cache.