anchor.diff:  					{Debits, Buckets4} = get_final(ServiceId,
   							ChargingKey, SessionId, Buckets3),
   					Rated3 = rated(Debits, Rated2),
  -					rate7(Service, Buckets4, final, DebitAmount, {Units, TotalUnits},
  +					charge3(Service, Buckets4, final, DebitAmount, {Units, TotalUnits},
   							ReserveAmount, ReserveAmount, State#state{rated = Rated3});
   				{PriceCharged, Buckets3}  when PriceCharged < PriceCharge ->
   					TotalUnits = UnitsCharged + (PriceCharged div UnitPrice),
  
positive.code: 	case update_session(Units, 0, Amount,
  			ServiceId, ChargingKey, SessionId, Buckets) of
  		{0, UnitsReserved, Buckets2} when UnitsReserved >= Amount ->
  			rate7(Service, Buckets2, initial,
  					{Units, 0}, {Units, 0}, ReserveAmount,
  					{Units, UnitsReserved}, State);
  		{0, UnitsReserved, Buckets2} when UnitsReserved < Amount ->
  
negative.code: 	ok = mnesia:write(Service2),
  	{out_of_credit, RedirectServerAddress, SessionList, Rated1, DeletedBuckets,
  			accumulated_balance(NewBuckets, P#product.id)};
  charge3(#service{enabled = false, session_attributes = SessionList} = Service1,
  		Buckets, _Flag, {Units, _Charge}, {Units, _Charged},
  		{Units, _Reserve}, {Units, _Reserved},
  		#state{session_id = SessionId, service_id = ServiceId,
  