@Override
 public Q get(T request) {
     Long date = datesMap.get(request);
     if (date != null && System.currentTimeMillis() - date > maximumAge) {
         cache.remove(request);
         datesMap.remove(request);
     }
     return cache.get(request);
 }
 @Override
 public void clear() {
     cache.clear();
     datesMap.clear();
 }
 @Override
 public Collection<T> keys() {
     return cache.keys();
 }
 @Override
 public void remove(T key) {
     cache.remove(key);
     datesMap.remove(key);
 }
 @Override
 public void put(T request, Q response) {
     cache.put(request, response);
     datesMap.put(request, System.currentTimeMillis());
 }