    /**
     * Introspects the injector and collects all instances of bound {@code List<FilterDefinition>}
     * into a master list.
-@@ -84,86 +74,4 @@ class ManagedFilterPipeline implements FilterPipeline{
+@@ -84,89 +74,4 @@ class ManagedFilterPipeline implements FilterPipeline{
      // Copy to a fixed-size array for speed of iteration.
      return filterDefinitions.toArray(new FilterDefinition[filterDefinitions.size()]);
    }
 -
--  public synchronized void initPipeline(ServletContext servletContext)
--      throws ServletException {
+-  @Override
+-  public synchronized void initPipeline(ServletContext servletContext) throws ServletException {
 -
 -    //double-checked lock, prevents duplicate initialization
 -    if (initialized)

-    };
-  }
-
-  public void destroyPipeline() {
-    //destroy servlets first
-    servletPipeline.destroy();

+   */
+  protected abstract FilterDefinition[] filterDefinitions();
+
+  @Override
+  public synchronized void initPipeline(ServletContext servletContext) throws ServletException {
+
+    //double-checked lock, prevents duplicate initialization
+    if (initialized)
