anchor.diff:  					{service_network, ServiceNetwork}, {result, Other}]),
   			throw(table_lookup_failed)
   	end;
  -rate4(Protocol, Service, Buckets, Price,
  +rate4(Protocol, Service, Product, Buckets, Price,
   		Flag, DebitAmounts, ReserveAmounts, State) ->
  -	charge(Protocol, Service, Buckets, Price,
  +	charge(Protocol, Service, Product, Buckets, Price,
   			Flag, DebitAmounts, ReserveAmounts, State).
   %% @hidden
   
   
  -charge(_Protocol, #service{enabled = false} = Service,
  +charge(_Protocol, #service{enabled = false} = Service, Product,
   		Buckets, #price{units = Units} = _Price, initial,
   		_DebitAmounts, _ReserveAmounts, State) ->
  -	charge3(Service, Buckets, initial,
  +	charge3(Service, Product, Buckets, initial,
   			{Units, 0}, {Units, 0}, {Units, 0}, {Units, 0}, State);
  -charge(radius, Service, Buckets, #price{units = Units} = Price,
  +charge(radius, Service, Product, Buckets, #price{units = Units} = Price,
   		initial, [], [], State) ->
  -	charge2(Service, Buckets, Price, initial, {Units, 0}, get_reserve(Price), State);
  -charge(radius, Service, Buckets, #price{units = Units} = Price,
  +	charge2(Service, Product, Buckets, Price, initial, {Units, 0}, get_reserve(Price), State);
  +charge(radius, Service, Product, Buckets, #price{units = Units} = Price,
   		interim, DebitAmounts, ReserveAmounts, State) ->
   	DebitAmount = case lists:keyfind(Units, 1, DebitAmounts) of
   		{Units, DebitUnits} ->
  
positive.code: 			{Units, Size}
  	end,
  	ReserveAmount = {Units, 0},
  	charge2(Service, Buckets, Price, event, DebitAmount, ReserveAmount, State);
  charge(_Protocol, Service, Buckets, #price{units = Units} = Price,
  		Flag, DebitAmounts, undefined, State) ->
  	DebitAmount = case lists:keyfind(Units, 1, DebitAmounts) of
  		{Units, DebitUnits} ->
  
negative.code: 				{PriceCharge, Buckets3} ->
  					TotalUnits = UnitsCharged + UnitCharge,
  					Rated3 = rated(#{Units => Amount, cents => PriceCharge}, Rated2),
  					charge3(Service, Product, Buckets3, event, DebitAmount, {Units, TotalUnits},
  							ReserveAmount, ReserveAmount, State#state{rated = Rated3});
  				{PriceCharged, Buckets3}  when PriceCharged < PriceCharge ->
  					TotalUnits = UnitsCharged + (PriceCharged div UnitPrice),
  