anchor.diff:  		UsedAmounts :: [{Units, pos_integer()}],
   		ReserveAmounts :: [{Units, pos_integer()}],
   		Units :: octets | seconds | messages,
  -		Result :: {{MSCCs, ResultCode}, PLAs, Amounts}
  -				| {{MSCCs, ResultCode, Rated}, PLAs, Amounts}
  +		Result :: {{MSCCs, ResultCode, Rated}, PLAs, Amounts}
   				| {error, Reason},
   		Reason :: term(),
   		MSCCs :: [MSCC],
  
positive.code: 				{struct, RatedStruct} = mochijson:decode(JSON1),
  				{_, {_, ServiceElements}} = lists:keyfind("serviceRating", 1, RatedStruct),
  				{ServiceRating, _} = map_service_rating(ServiceElements, SessionId),
  				case charge(Subscribers, ServiceRating, Amounts2, SessionId, initial) of
  					{ok, NewMSCC1, ResultCode1} ->
  						Container = build_container(MSCC1),
  						NewMSCC3 = build_mscc(NewMSCC1 ++ MSCC3, Container),
  
negative.code: 					Timestamp, Address, Direction, Flag, SessionId,
  					T, [MSCC | Acc1], Acc2, Acc3, ResultCode3, Rated1 ++ Rated2);
  		{disabled, _SessionList} ->
  			{{Acc1, ?'DIAMETER_CC_APP_RESULT-CODE_END_USER_SERVICE_DENIED', undefined},
  					Acc2, Acc3};
  		{error, service_not_found} ->
  			{{Acc1, ?'DIAMETER_CC_APP_RESULT-CODE_USER_UNKNOWN', undefined},
  					Acc2, Acc3};
  		{error, Reason} ->
  			{error, Reason}
  	end;
  