Filter createInstance(final String type, final Properties config, final ConnectionProcessor connectionProcessor) {
         Class cl = classFor(type);
         Constructor constructor;
         try {
             constructor = cl.getConstructor(ConnectionProcessor.class, Properties.class);
             return (Filter) constructor.newInstance(connectionProcessor,config);
         } catch (InvocationTargetException e) {
            throw new Error("Filter constructor  for " + cl.getName() + " threw an exception: " + e.getTargetException().getMessage());
         } catch (Exception e) {
             throw new Error("trouble creating an instance of'" + cl.getName() + "'. verify that it implements: public <init>(ConnectionProcessor, java.util.Properties): " + e.getMessage());
         }
     }