use ConcurrentMap instead of Map in preparation for threaded model
last modified on returned resources
utilize thread pool for concurrent requests