anchor.diff:          if (typeElem != null) {
             LibraryElement libElem = typeElem.library;
             if (libElem != null) {
  -            _updateInvocationRelevance(type, libElem, suggestions, completionList);
  +            _updateInvocationRelevance(
  +                type, libElem, suggestions, completionList);
             }
           }
         }
       }
     }
  -
   
     /**
      * Adjusts the relevance of all method suggestions based upon the given
  
positive.code:    * The compilation unit and completion node
     * in the given completion context may not be resolved.
     */
    Future _update(
        CompletionRequest request, Iterable<CompletionSuggestion> suggestions) async {
          var target = _getCompletionTarget(request);
          _log.info("completionTarget: $target");
  
          _log.info("About to _update: $request");
          _log.info("Model $model");
  
          var completionScores;
          var features;
  
  
          try {
  
  
            if (model == null) {
              _log.info("Initting model");
  
              String homeDir = io.Platform.environment["HOME"];
              String workingPath = homeDir + "/" + "feature_files";
  
              model = new smart_model.Model(workingPath);
              _log.info("Model init complete");
  
            }
  
            _log.info("Request Target: $request");
            _log.info("target.containingNode: ${target.containingNode}");
            _log.info("target.entity: ${target.entity}");
            _log.info("targetRuntimeType: ${target.containingNode.runtimeType}");
  
            Stopwatch sw = new Stopwatch()..start();
  
            if (target.containingNode is MethodInvocation) {
              _log.info("Method invocation");
              var node = target.containingNode as MethodInvocation;
              features = smart_model_extractor.featuresFromMethodInvocation(node);
            } else if (target.containingNode is PropertyAccess) {
              _log.info("Method property access");
              var node = target.containingNode as PropertyAccess;
              features = smart_model_extractor.featuresFromPropertyAccess(node);
            } else if (target.containingNode is PrefixedIdentifier) {
              _log.info("Method prefixed identifier");
              var node = target.containingNode as PrefixedIdentifier;
              features = smart_model_extractor.featuresFromPrefixedIdentifier(node);
            } else {
              // Completion on unworkable note
              _log.info("Target node type not supported");
              return new Future.value();
            }
  
            _log.info("Features for Node computed: ${sw.elapsedMilliseconds}");
            _log.info(convert.JSON.encode(features));
  
            completionScores = model.scoreCompletionOrder(features);
  
            // log("Completion scores");
            // log(convert.JSON.encode(completionScores));
  
            _log.info ("Extraction complete: ${sw.elapsedMilliseconds}/ms");
  
          } catch (e, st) {
            await _log.info ("Crash: $e \n $st");
          }
          //
          // log("Adaptive ordering completed");
          // log("Completion scores: $completionScores");
          //
  
  
          var completionList = completionScores.keys.toList()..sort((k1, k2) =>
            completionScores[k1]["Overall_PValue"].compareTo(
              completionScores[k2]["Overall_PValue"]
            ));
  
            _log.info ("TargetType: ${features["TargetType"]}");
  
            completionList = completionList.reversed.toList();
  
            _log.info ("Ordered completion List:\n"
              "${convert.JSON.encode(completionList)}");
  
            _log.info ("Suggestions List:\n"
              "${convert.JSON.encode(suggestions.map((s) => s.completion).toList())}");
  
      if (target != null) {
        var visitor = new _BestTypeVisitor(target.entity);
  
negative.code:  * that should not maintain state between calls to it's [sort] method.
   */
  class CommonUsageSorter implements DartContributionSorter {
    /**
     * A map of <library>.<classname> to an ordered list of method names,
     * field names, getter names, and named constructors.
  