anchor.diff:                return _limitedDiffFromVersion(diff);
               }
   
  -            if (project!=null) {
  +            if (projection!=null) {
                 for (Map elem in diff) {
                   if(elem.containsKey('data')){
  -                  project(elem['data']);
  +                  projection(elem['data']);
                   }
                 }
               }
  
positive.code:   /**
     * Returns data and version of this data 7.
     */
    Future<Map> data({project: null}) {
      return collection.find(where.raw(_rawSelector).limit(_limit).skip(_skip)).toList().then((data) {
        //return _maxVersion.then((version) => {'data': data, 'version': version});
        var version = data.length == 0 ? 0 :
          data.map((item) => item['__clean_version']).reduce(max);
  
        _stripCleanVersion(data);
        if (project!=null){
          data.forEach((e) => project(e));
        }
        return {'data': data, 'version': version};
      });
  
negative.code:     return new List.from(res.reversed);
    }
  
    Future<Map> _diffFromVersion(num version, {projection:null}) {
      // if (some case not covered so far) {
      // throw new DiffNotPossibleException('diff not possible');
      // selects records that fulfilled _selector before change
  