anchor.diff:  		Charge :: integer(),
   		Final :: boolean(),
   		Buckets :: [#bucket{}],
  -		Result :: {Charged, Buckets},
  +		Result :: {RemainCharge, Charged, Buckets},
  +		RemainCharge :: integer(),
   		Charged :: integer().
   charge(Type, Charge, Final, Buckets) ->
   	Now = erlang:system_time(?MILLISECOND),
  
positive.code: 			Bucket = #bucket{bucket_type = Type, remain_amount = Remain,
  				termination_date = Validity,
  				start_date = erlang:system_time(?MILLISECOND)},
  			{Charged, [Bucket | NewBuckets]}
  	end.
  
  remove_session(SessionList, [H | T]) ->
  
negative.code: %% @hidden
  rate3(#subscriber{session_attributes = SessionList} = Subscriber,
  		Charged, Flag, ReserveAmount, SessionIdentification) ->
  erlang:display({?MODULE, ?LINE, Charged}),
  	case Charged of
  		C1 when C1 > 0 ->
  			Entry = Subscriber#subscriber{session_attributes = []},
  			ok = mnesia:write(Entry),
  			{out_of_credit, SessionList};
  