anchor.diff:  	N = erlang:unique_integer([positive]),
   	NewBuckets2 = charge(ProdRef, AllowanceAmount,
   			[#bucket{id = generate_bucket_id(),
  -			units = Units, remain_amount = Size, product = [ProdRef],
  -			end_date = end_period(Now, Period), last_modified = {Now, N}}
  +					attributes = #{bucket_type => normal},
  +					units = Units, remain_amount = Size, product = [ProdRef],
  +					end_date = end_period(Now, Period), last_modified = {Now, N}}
   			| NewBuckets1]),
   	Product1 = Product#product{payment = NewPayments},
   	subscription(Product1, Now, false, NewBuckets2, T);
  
positive.code: 						BId = generate_bucket_id(),
  						NewBucket = #bucket{id = BId, start_date = StartDate, end_date = EndDate,
  								remain_amount = -Amount2, units = Units, product = [ProductRef],
  								last_modified = make_lm()},
  						ok = mnesia:write(bucket, NewBucket, write),
  						{[BId |Acc], [BId | WrittenRefs], DeletedRefs}
  
negative.code: 	N = erlang:unique_integer([positive]),
  	NewBuckets = charge(ProdRef, PriceAmount + AlterAmount,
  			[#bucket{id = generate_bucket_id(), product = [ProdRef],
  					units = Units, remain_amount = Size,
  					attributes = #{bucket_type => normal},
  					last_modified = {Now, N}} | Buckets]),
  	subscription(Product, Now, true, NewBuckets, T);
  subscription(Product, Now, false, Buckets, [#price{type = one_time} | T]) ->
  	subscription(Product, Now, false, Buckets, T);
  