default <T>T methodWriter(Class<T> tClass,Class... additional){
  Class[] interfaces=ObjectUtils.addAll(tClass,additional);
  return (T)Proxy.newProxyInstance(tClass.getClassLoader(),interfaces,new MethodWriterInvocationHandler(this));
}

default < T > T methodWriter ( Class < T > tClass , Class ... additional ) { Class [ ] interfaces = ObjectUtils . addAll ( tClass , additional ) ; return ( T ) Proxy . newProxyInstance ( tClass . getClassLoader ( ) , interfaces , new MethodWriterInvocationHandler ( this ) ) ; }
proxy an interface so each message called is written to a file for replay .
