code: public boolean init() {
  	// open model file to load model here ... complete later
  	BufferedReader fin = null;
  	String modelFile = taggerOpt.modelDir + File.separator + taggerOpt.modelFile;
  	
  	try {
  	    fin = new BufferedReader(new InputStreamReader(new FileInputStream(modelFile), "UTF-8"));
  	    
  	    // read context predicate map and label map
  	    taggerMaps.readCpMaps(fin);
  	    
  	    System.gc();
  
  	    taggerMaps.readLbMaps(fin);
  	    
  	    System.gc();
  	    
  	    // read dictionary 
  	    taggerDict.readDict(fin);
  	    
  	    System.gc();
  	    
  	    // read features
  	    taggerFGen.readFeatures(fin);
  	    
  	    System.gc();
  	    
  	    // close model file
  	    fin.close();
  	    
  	} catch (IOException e) {
  	    System.out.println("Couldn't open model file: " + modelFile);
  	    System.out.println(e.toString());
  	    
  	    return false;	    
  	}
  	
  	// update feature weights
  	if (lambda == null) {
  	    int numFeatures = taggerFGen.numFeatures();
  	    lambda = new double[numFeatures];
  	    for (int i = 0; i < numFeatures; i++) {
  		Feature f = (Feature)taggerFGen.features.get(i);
                  //System.out.println(f.idx);
  		lambda[f.idx] = f.wgt;                
  	    }
  	}
      
  	// call init method of Viterbi object
  	if (taggerVtb != null) {
  	    taggerVtb.init(this);
  	}
  	
  	return true;
      }
docs: Inits the.
  
  @return true, if successful