anchor.diff:  							units = Units, product = [ProductId]} | Buckets2],
   					charge3(Service, Product, Buckets4, interim,
   							DebitAmount, {Units, Damount - UnitsCharged},
  -							ReserveAmount, {Units, 0}, State)
  +							ReserveAmount, {Units, 0}, State, Buckets)
   			end
   	end;
  -charge2(#service{name = ServiceId} = Service, #product{id = ProductId} = Product, Buckets1,
  +charge2(#service{name = ServiceId} = Service, #product{id = ProductId} = Product, Buckets,
   		#price{units = Units, size = UnitSize, amount = UnitPrice,
   		type = PriceType, currency = Currency}, final,
   		{Units, Amount} = DebitAmount, {Units, 0} = ReserveAmount,
  
positive.code: 			accumulated_balance(NewBuckets, Product#product.id)};
  charge3(#service{session_attributes = SessionList} = Service1, Product, Buckets, initial,
  		{Units, 0}, {Units, 0}, {Units, _Reserve}, {Units, Reserved},
  		#state{buckets = OldBuckets, session_id = SessionId}) ->
  	{NewBRefs, DeletedBuckets}
  			= update_buckets(Product#product.balance, OldBuckets, Buckets),
  	ok = mnesia:write(Product#product{balance = NewBRefs}),
  
negative.code: 			accumulated_balance(Buckets, Product#product.id)};
  charge3(Service, Product, Buckets, interim, {Units, _Charge}, {Units, _Charged},
  		{Units, _Reserve}, {Units, Reserved},
  		_State, OldBuckets) ->
  	{NewBRefs, DeletedBuckets}
  			= update_buckets(Product#product.balance, OldBuckets, Buckets),
  	ok = mnesia:write(Product#product{balance = NewBRefs}),
  