anchor.diff:  get_params5(_, _, _, false) ->
   	{error, httpd_group_undefined}.
   
  --spec charge(Amount, Buckets) -> Buckets
  -	when
  +-spec charge(ProdRef, Amount, Buckets) -> Buckets
  +	when
  +		ProdRef :: string(),
   		Amount :: non_neg_integer(),
   		Buckets :: [#bucket{}].
   %% @doc Charge `Amount' to `Buckets'.
   %% @private
  -charge(Amount, Buckets) ->
  -	charge(Amount, Buckets, []).
  -%% @hidden
  -charge(0, T, Acc) ->
  +charge(ProdRef, Amount, Buckets) ->
  +	charge(ProdRef, Amount, Buckets, []).
  +%% @hidden
  +charge(_ProdRef, 0, T, Acc) ->
   	lists:reverse(Acc) ++ T;
  -charge(Amount, [#bucket{units = cents,
  +charge(_ProdRef, Amount, [#bucket{units = cents,
   		remain_amount = Remain} = B | T], Acc) when Amount < Remain ->
   	lists:reverse(Acc) ++ [B#bucket{remain_amount = Remain - Amount} | T];
  -charge(Amount, [#bucket{units = cents,
  +charge(_ProdRef, Amount, [#bucket{units = cents,
   		remain_amount = Remain} = B], Acc) ->
   	lists:reverse([B#bucket{remain_amount = Remain - Amount} | Acc]);
  -charge(Amount, [H | T], Acc) ->
  -	charge(Amount, T, [H | Acc]);
  -charge(Amount, [], Acc) ->
  +charge(ProdRef, Amount, [H | T], Acc) ->
  +	charge(ProdRef, Amount, T, [H | Acc]);
  +charge(ProdRef, Amount, [], Acc) ->
   	lists:reverse([#bucket{id = generate_bucket_id(),
  -			units = cents, remain_amount = - Amount} | Acc]).
  +			units = cents, remain_amount = - Amount,
  +			product = [ProdRef]} | Acc]).
   
   %% @private 
   generate_bucket_id() ->
  
positive.code: 	{Product1, Buckets1} = lists:foldl(F, {Product, Buckets}, Bundled),
  	subscription(Product1, Now, InitialFlag, Buckets1, Prices).
  %% @hidden
  subscription(Product, Now, true, Buckets,
  		[#price{type = one_time, amount = Amount,
  			alteration = undefined} | T]) ->
  	NewBuckets = charge(Amount, Buckets),
  	subscription(Product, Now, true, NewBuckets, T);
  subscription(#product{name = ProdRef} = Product, Now, true,
  		Buckets, [#price{type = one_time, amount = PriceAmount,
  			alteration = #alteration{units = Units, size = Size,
  			amount = AlterAmount}} | T]) ->
  	N = erlang:unique_integer([positive]),
  	NewBuckets = charge(PriceAmount + AlterAmount,
  			[#bucket{id = generate_bucket_id(), product = [ProdRef],
  				units = Units, remain_amount = Size, last_modified = {Now, N}}
  				| Buckets]),
  
negative.code: 		[#price{type = usage, alteration = #alteration{type = one_time,
  			units = Units, size = Size, amount = AlterationAmount}} | T]) ->
  	N = erlang:unique_integer([positive]),
  	NewBuckets = charge(ProdRef, AlterationAmount,
  		[#bucket{id = generate_bucket_id(), units = Units,
  			remain_amount = Size, product = [ProdRef], last_modified = {Now, N}}
  			| Buckets]),
  