added in-memory cache