anchor.diff:  		Subscriber#subscriber{multisession = MultiSession},
   	do_write(UpdateSubscriber).
   
  --spec patch_add(Path , Value, Subscriber) -> ok
  -	when
  +-spec patch_add(Id, Path, Value) -> ok
  +	when
  +		Id				:: binary(),
   		Path			:: string(),
  -		Value			:: string(),
  -		Subscriber	:: #subscriber{}.
  +		Value			:: string().
   %% @doc add the give value with given target location.
  -patch_add(Path , Value, Subscriber) ->
  +patch_add(Id, Path, Value) ->
   	[Target, Location] = string:tokens(Path, "/"),
  -	patch_add1(Target , Value, Location, Subscriber).
  -%% @hidden
  -patch_add1("buckets" , Value, Location, Subscriber) ->
  +	patch_add1(Target , Id, Value, Location).
  +%% @hidden
  +patch_add1("buckets" , Id, Value, Location) ->
  +	[Subscriber] = mnesia:read(subscriber, Id),
   	OldBuckets = Subscriber#subscriber.buckets,
   	patch_add(buckets , Value, Location, OldBuckets, Subscriber).
   %% @hidden
  
positive.code: 	UpdateSubscriber =
  		Subscriber#subscriber{enabled = Enabled},
  	do_write(UpdateSubscriber);
  patch_replace1("multisession", Value, Subscriber) ->
  	MultiSession = case Value of
  		"true" ->
  			true;
  
negative.code: 				F2 = fun({struct, OpObj}) ->
  					case validate_operation(OpObj) of
  						{"replace", Path, Value} ->
  							ok = patch_replace(Id, Path, Value);
  						{"add", Path, Value} ->
  							ok = patch_add(Id, Path, Value);
  						{error, malformed_request} ->
  							throw(malformed_request)
  					end
  