anchor.diff:      if (id == null) {
         id = _nextId();
       }
  -    return _store.save(toJson(), id);
  +    return _store.save(JSON.encode(_serialization.write(this)), id);
     }
     
     Future delete() {
  
positive.code:   }
    
    static _createAndPopulate(ClassMirror classMirror, String id, Map data) {
      var instance = classMirror.newInstance(const Symbol(''), []);
      Persistable object = instance.reflectee;
      object.id = id;
      var instanceMirror = reflect(object);
      data.forEach((k, v) {
        log.fine('$k has $v which is a ${v.runtimeType}');
        if (classMirror.variables.containsKey(new Symbol(k))) {
          instanceMirror.setField(new Symbol(k), v);
        }
      });
      return object;
    }
    
    String _nextId() => _idOffset + '-' + (_counter++).toString();
  
  }
negative.code: 
  int _counter = 0;
  final String _idOffset = new DateTime.now().millisecondsSinceEpoch.toString();
  String _nextId() => _idOffset + '-' + (_counter++).toString();
  
  final Serialization _serialization = new Serialization();
  
  /**
   * XXX We don't use this when we compile to dart2js because
  