OPENNLP-636 Trainer now uses init method instead of constructor to initialize the component.
diff --git a/liblinear-addon/src/main/java/LiblinearTrainer.java b/liblinear-addon/src/main/java/LiblinearTrainer.java
index 361f7ef..e3bc0fd 100644
--- a/liblinear-addon/src/main/java/LiblinearTrainer.java
+++ b/liblinear-addon/src/main/java/LiblinearTrainer.java
@@ -17,12 +17,8 @@
  * under the License.
  */
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,23 +33,22 @@
 import de.bwaldvogel.liblinear.Parameter;
 import de.bwaldvogel.liblinear.Problem;
 import de.bwaldvogel.liblinear.SolverType;
-import de.bwaldvogel.liblinear.Train;
 
 public class LiblinearTrainer extends AbstractEventTrainer {
 
-  private final SolverType solverType;
-  private final Double c;
-  private final Double eps;
-  private final Double p;
+  private SolverType solverType;
+  private Double c;
+  private Double eps;
+  private Double p;
   
-  private final int bias;
+  private int bias;
   
-  // TODO: Is is probably better to specifiy an initalizer method
-  // and throw an exception from it, rather than throwing it here ?!
-  public LiblinearTrainer(Map<String, String> trainParams,
+  public LiblinearTrainer() {
+  }
+
+  @Override
+  public void init(Map<String, String> trainParams,
       Map<String, String> reportMap) {
-    super(trainParams, reportMap);
-    
     String solverTypeName = trainParams.get("solverType");
     
     if (solverTypeName != null) {
@@ -103,9 +98,9 @@
     }
     else {
       throw new IllegalArgumentException("eps must be specified");
-    }
+    }    
   }
-
+  
   private static Problem constructProblem(List<Double> vy, List<Feature[]> vx, int maxIndex, double bias) {
     
     // Initialize problem
@@ -165,7 +160,8 @@
 
       // for each feature ...
       for (int fi = 0; fi < features.length; fi++) {
-        x[fi] = new FeatureNode(features[fi] + 1, indexer.getNumTimesEventsSeen()[fi]);
+        // TODO: SHOUDL BE indexer.getNumTimesEventsSeen()[i] and not fi !!!
+        x[fi] = new FeatureNode(features[fi] + 1, indexer.getNumTimesEventsSeen()[i]);
       } 
 
       if (features.length > 0) {