private Plan processPlan(DeltaSpecification spec, List<Method> processors) {
   InterleavedPlanBuilder builder = newInterleavedPlan(interleaved());
   for (Method processor : processors) {
     try {
       Object o = processor.getDeclaringClass().newInstance();
       addResultingStepToBuilder(processor.invoke(o, spec), builder, processor);
     } catch (InstantiationException e) {
       throw new PlannerException(e);
     } catch (IllegalAccessException e) {
       throw new PlannerException(e);
     } catch (InvocationTargetException e) {
       handleInvocationTargetException(e);
     }
   }
   return builder.build();
 }