anchor.diff:  			Bucket = #bucket{bucket_type = Type, remain_amount = Remain,
   				termination_date = Validity,
   				start_date = erlang:system_time(?MILLISECOND)},
  -			{Charged, [Bucket | NewBuckets]}
  +			{RemainCharge, Charged, [Bucket | NewBuckets]};
  +		{RemainCharge, Charged, NewBuckets} ->
  +			{RemainCharge, Charged, NewBuckets}
   	end.
   
   remove_session(SessionList, [H | T]) ->
  
positive.code: 		Charge :: integer(),
  		Final :: boolean(),
  		Buckets :: [#bucket{}],
  		Result :: {Charged, Buckets},
  		Charged :: integer().
  charge(Type, Charge, Final, Buckets) ->
  	Now = erlang:system_time(?MILLISECOND),
  
negative.code: 		#price{units = Type, size = Size, amount = Price} = lists:keyfind(usage, #price.type, Prices),
  		{Type, Reserve} = lists:keyfind(Type, 1, ReserveAmount),
  		case charge(Type, Reserve, false, Buckets) of
  			{R1, C1, NB1} when R1 < 0 ->
  				{C2, NB2} = purchase(Type, Price, Size, Reserve - C1, Validity, false, NB1),
  				{R1, NB2, Reserve};
  			{R1, C1, NB1} ->
  				{R1, NB1, Reserve}
  		end
  	of
  		{RemainCharge, NewBuckets, Amount} ->
  			rate3(Subscriber#subscriber{buckets = NewBuckets},
  					RemainCharge, Flag, Amount, SessionIdentification)
  	catch
  		_:_ ->
  			throw(price_not_found)
  