class MasterInstrumenter extends CompositeInstrumenter {

  @Override public boolean instrument(Test test,
                                      Recorder recorder,
                                      Object target,
                                      InstrumentationFilter filter)
    throws NonInstrumentableTypeException {

    if (target == null) {
      throw new NonInstrumentableTypeException("Can't instrument null/None");
    }

    final boolean result = super.instrument(test, recorder, target, filter);

    if (result) {
      return true;
    }

    throw new NonInstrumentableTypeException("Failed to wrap " + target);
  }

  public  MasterInstrumenter(List<Instrumenter> instrumenters);

}