code: @SuppressWarnings("unchecked")
    public static <T> T newProxy(Class<T> ctype, T concrete, String id) {
      final InvocationHandler handler = new TimedHandler<>(ctype, concrete, id);
      final Class<?>[] types = new Class[]{ctype, CompositeMonitor.class};
      return (T) Proxy.newProxyInstance(ctype.getClassLoader(), types, handler);
    }
docs: Creates a new TimedInterface for a given interface <code>ctype</code> with a concrete class
  <code>concrete</code> and a specific id. The id can be used to distinguish among multiple
  objects with the same concrete class.