anchor.diff:        });
     }
   
  -  void restart([Map args = const {}]) {
  +  void restart({Map args: const {}, initialData}) {
       logger.info("Restarting ${this} with args: ${args}");
       this.args = args;
       if (!_started) {
         logger.fine("First restart of subscription");
  -      _start();
  +      _start(initialData: initialData);
       } else {
         if (!_initialSync.isCompleted) _initialSync.completeError(new CanceledException());
         _initialSync = createInitialSync();
  
positive.code:         return;
        }
        _version = response['version'];
        _handleData(response['data'], this);
        _connected = true;
  
        logger.info("Got initial data, synced to version ${_version}");
  
        // TODO remove the check? (restart/dispose should to sth about initialSynd)
        if (!_initialSync.isCompleted) _initialSync.complete();
  
negative.code:     }
    }
  
    Future setupDataRequesting({initialData}) {
      // request initial data; this is also called when restarting subscription
      logger.info("Setting up data requesting for ${this}");
      /// remember initialSync, that was active in thsi moment. Later, when we get
      /// initial data, we check, if this completer is already completed - if so,
      /// it means, the subscription was restarted sooner than initialSync-ed
      var oldInitialSync =_initialSync;
      if(initialData != null && initialData['data'] != null) {
        logger.fine('Initiating ${this.resourceName} with data $initialData');
  
         _version = initialData['version'];
  
         _handleData(initialData['data'], this);
         _connected = true;
  
         logger.info("Loaded initial data, synced to version ${_version}");
  
         // TODO remove the check? (restart/dispose should to sth about initialSynd)
         if (!_initialSync.isCompleted) _initialSync.complete();
  
         _setupPeriodicDiffRequesting();
         return new Future.value(null);
      }
      logger.fine('Initiating ${this.resourceName} without data $initialData');
  
  
      return _connection.send(_createDataRequest).then((response) {
        if (oldInitialSync.isCompleted) {
          return;
  