anchor.diff:  		| T]) when Period /= undefined, Units == octets; Units == seconds;
   		Units == messages, ((Type == usage) or (Type == tariff)) ->
   	N = erlang:unique_integer([positive]),
  -	NewBuckets = charge(ProdRef, Amount, [#bucket{id = generate_bucket_id(),
  -			units = Units, remain_amount = Size, product = [ProdRef],
  -			end_date = end_period(Now, Period), last_modified = {Now, N}}
  +	NewBuckets = charge(ProdRef, Amount,
  +			[#bucket{id = generate_bucket_id(), units = Units,
  +					attributes = #{bucket_type => normal},
  +					remain_amount = Size, product = [ProdRef],
  +					end_date = end_period(Now, Period), last_modified = {Now, N}}
   			| Buckets]),
   	NewPayments = [{Name, end_period(Now, Period)} | Payments],
   	Product1 = Product#product{payment = NewPayments},
  
positive.code: 						BId = generate_bucket_id(),
  						NewBucket = #bucket{id = BId, start_date = StartDate,
  								end_date = EndDate, remain_amount = Amount1,
  								units = Units, product = [ProductRef],
  								last_modified = make_lm()},
  						mnesia:write(bucket, NewBucket, write),
  
negative.code: 								B4 = #bucket{id = generate_bucket_id(),
  										start_date = StartDate, end_date = EndDate,
  										remain_amount = RemainAmount, units = Units,
  										attributes = #{bucket_type => normal},
  										product = [ProductRef],
  										last_modified = make_lm()},
  								mnesia:write(B4),
  