docs: public <Value> PushMeasure<Value> wrapMeasure(
  			final PushMeasure<Value> wrapped) {
  		if (wrapped == null) {
  			throw new IllegalArgumentException("No measure provided");
  		} else {
  			@SuppressWarnings("unchecked")
  			PushMeasure<Value> wrapper = (PushMeasure<Value>) measureCache
  					.get(wrapped);
  
  			if (wrapper == null) {
  				wrapper = new PushMeasure<Value>() {
  
  					@Override
  					public String getName() {
  						return wrapped.getName();
  					}
  
  					@Override
  					public String getDescription() {
  						return wrapped.getDescription();
  					}
  
  					@Override
  					public void register(MeasureListener<Value> listener) {
  						wrapped.register(wrapListener(listener));
  					}
  
  					@Override
  					public void unregister(MeasureListener<Value> listener) {
  						wrapped.unregister(wrapListener(listener));
  					}
  				};
  				measureCache.put(wrapped, wrapper);
  			} else {
  				// reuse existing one
  			}
  
  			return wrapper;
  		}
  	}