code: private void put(
  		K key,
  		Refresher<? super K,? extends V,? extends E> refresher,
  		Result<V,E> result
  	) {
  		CacheEntry entry = new CacheEntry(key, refresher, result);
  		map.put(key, entry);
  		timer.schedule(entry, new Date(System.currentTimeMillis() + refreshInterval), refreshInterval);
  	}
docs: Puts a new entry, replacing any existing.  Schedules refresh on the timer.
  <p>
  Any formerly scheduled timer is not canceled.  It will detect it has been
  replaced when it is called and cancel itself.  This puts more of the load
  on the background thread.
  </p>