working on cache