anchor.diff:  	ok = mnesia:write(Service2),
   	{disabled, SessionList, DeletedBuckets,
   			accumulated_balance(NewBuckets, P#product.id)};
  -rate7(#service{session_attributes = SessionList} = Service1, Buckets, _Flag,
  +charge3(#service{session_attributes = SessionList} = Service1, Buckets, _Flag,
   		{Units, Charge}, {Units, Charged}, {Units, Reserve}, {Units, Reserved},
   		#state{session_id = SessionId, service_id = ServiceId,
   		charging_key = ChargingKey, buckets = OldBuckets,
  
positive.code: 	ok = mnesia:write(Service2),
  	{out_of_credit, RedirectServerAddress, SessionList, DeletedBuckets,
  			accumulated_balance(NewBuckets, P#product.id)};
  rate7(#service{session_attributes = SessionList} = Service1, Buckets, initial,
  		{Units, 0}, {Units, 0}, {Units, _Reserve}, {Units, Reserved},
  		#state{buckets = OldBuckets, session_id = SessionId, product = P}) ->
  	{NewBRefs, DeletedBuckets}
  
negative.code: 							remain_amount = UnitsCharged - Damount,
  							reservations = [NewReservation],
  							units = Units, product = [ProductId]} | Buckets2],
  					charge3(Service, Buckets4, interim,
  							DebitAmount, {Units, Damount - UnitsCharged},
  							ReserveAmount, {Units, 0}, State)
  			end
  	end;
  charge2(Service, Buckets1,
  		#price{units = Units, size = UnitSize, amount = UnitPrice,
  		type = PriceType, currency = Currency}, final,
  		{Units, Amount} = DebitAmount, {Units, 0} = ReserveAmount,
  