anchor.diff:  import 'package:smart/completion_model/model.dart' as smart_model;
   import 'package:smart/completion_model/ast_extractors.dart' as smart_model_extractor;
   
  +import 'package:logging/logging.dart' as log;
  +
   part 'common_usage_sorter.g.dart';
   
   smart_model.Model model;
  +log.Logger _log = new log.Logger("common_usage_sorter");
   
   
   /**
  
positive.code:             completionScores[k2]["Overall_PValue"]
            ));
  
            log ("TargetType: ${features["TargetType"]}");
  
            completionList = completionList.reversed.toList();
            log ("Ordered completion List");
            log ("\n${completionList.join("\n")}");
  
  
      if (target != null) {
  
negative.code:       CompletionRequest request, Iterable<CompletionSuggestion> suggestions) {
          var target = _getCompletionTarget(request);
  
          _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);
            }
  
  
            _log.info(convert.JSON.encode(features));
  
            _log.info("Features for Node");
            _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) {
            _log.info ("Crash: $e \n $st");
          }
          //
          // log("Adaptive ordering completed");
  