anchor.diff:  product_size(mb, octets, Size) -> Size * 1000000;
   product_size(_, _, Size) -> Size.
   
  --spec recurring_charge_period(RCPeriod) -> Result
  +-spec rc_period(RCPeriod) -> Result
   	when
   		RCPeriod	:: string(),
   		Result	:: valid_period().
   %% @doc return valid period
   %% @private
  -recurring_charge_period("") -> undefined;
  -recurring_charge_period("yearly") -> yearly;
  -recurring_charge_period("monthly") -> monthly;
  -recurring_charge_period("weekly") -> weekly;
  -recurring_charge_period("daily") -> daily.
  +rc_period("") -> undefined;
  +rc_period("yearly") -> yearly;
  +rc_period("monthly") -> monthly;
  +rc_period("weekly") -> weekly;
  +rc_period("daily") -> daily;
  +rc_period(undefined) -> "";
  +rc_period(yearly) -> "yearly";
  +rc_period(monthly) -> "monthly";
  +rc_period(weekly) -> "weekly";
  +rc_period(daily) -> "daily".
   
   -spec find_status(StringStatus) -> Status when
   	StringStatus	:: string(),
  
positive.code: prod_price_rc_period(erlang_term, Price) ->
  	case lists:keyfind("recurringChargePeriod", 1, Price) of
  		{_, RCPeriod} ->
  			RCPeriod;
  		false ->
  			undefined
  	end;
  
negative.code: 			ProdValidity =/= {error, format_error} ->
  				{ProdUnits, ProdSize} = product_unit_of_measure(ProdUOMesasure),
  				Size = product_size(ProdUnits, octets, ProdSize),
  				Price1 = #price{name = ProdName, description = ProdDescirption,
  				type = ProdPriceType, units = ProdUnits, size = Size,
  					currency = CurrencyCode, period = RCPeriod, validity = ProdValidity,
  