refactore cachedCollection