anchor.diff:    Future<Map> data() {
       Map selector = _selectorList.isEmpty ? {} : {AND: _selectorList};
       print(selector);
  -    var profiling = new Stopwatch()..start();
       return collection.find(selector).toList().then((data) {
  -      print('Data time:${profiling.elapsed}');
  -      profiling.stop();
         var version = data.length == 0 ? 0 :
           data.map((item) => item['__clean_version']).reduce(max);
         return {'data': data, 'version': version};
  
positive.code: 
    Future<Map> diffFromVersion(num version) {
      try{
        var profiling = new Stopwatch()..start();
        return _diffFromVersion(version).then((d) {
          print('diff: ${profiling.elapsed}');
          profiling.stop();
        return {'diff': d};
        });
      } on DiffNotPossibleException catch(e) {
  
negative.code:     Set before, after;
      List beforeOrAfter, diff;
  
      return _collectionHistory.find(beforeOrAfterSelector).toList()
        .then((result) {
          beforeOrAfter = result;
          return Future.wait([
            _collectionHistory.find(beforeSelector).toList(),
            _collectionHistory.find(afterSelector).toList()]);})
        .then((results) {
            before = new Set.from(results[0].map((d) => d['_id']));
            after = new Set.from(results[1].map((d) => d['_id']));
            diff = [];
  