anchor.diff:  	Char5 = {struct, [Name5, Description5, Config5, Type5, Value5]},
   	[Char1, Char2, Char3, Char4, Char5].
   
  --spec service(Service) -> Service
  +-spec inventory(Service) -> Service
   	when
   		Service :: #service{} | {struct, list()}.
   %% @doc CODEC for service inventory 
  -service({struct, Service}) ->
  -	service(Service, #service{});
  -service(#service{} = Service) ->
  -	service(record_info(fields, service), Service, [], []).
  -%% @hidden
  -service([{"category", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"description", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"endDate", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"hasStarted", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"href", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"id", Id}| T], Acc) ->
  -	service(T, Acc#service{name = list_to_binary(Id)});
  -service([{"isServiceEnabled", Enabled}| T], Acc) ->
  -	service(T, Acc#service{enabled = Enabled});
  -service([{"isStateful", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"name", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"orderDate", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"startDate", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"startMode", StartMode}| T], Acc) ->
  -	_Mode = start_mode(StartMode),
  -	service(T, Acc);
  -service([{"status", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"type", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"supportingResource", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"serviceRelationship", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"place", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"supportingService", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"serviceSpecification", _}| T], Acc) ->
  -	service(T, Acc);
  -service([{"relatedPary", {array, _}}| T], Acc) ->
  -	service(T, Acc);
  -service([{"product", ProductRef}| T], Acc) ->
  -	service(T, Acc#service{product = ProductRef});
  -service([{"serviceCharacteristic", Characteristics}| T], Acc) ->
  +inventory({struct, Service}) ->
  +	inventory(Service, #service{});
  +inventory(#service{} = Service) ->
  +	inventory(record_info(fields, service), Service, [], []).
  +%% @hidden
  +inventory([{"id", Id}| T], Acc) ->
  +	inventory(T, Acc#service{name = list_to_binary(Id)});
  +inventory([{"isServiceEnabled", Enabled}| T], Acc) ->
  +	inventory(T, Acc#service{enabled = Enabled});
  +inventory([{"product", ProductRef}| T], Acc) ->
  +	inventory(T, Acc#service{product = ProductRef});
  +inventory([{"serviceCharacteristic", Characteristics}| T], Acc) ->
   	Chars = service_chars(Characteristics),
   	F = fun(Key, Chars1) ->
   			case lists:keyfind(Key, 1, Chars1) of
  
positive.code: 		end
  	of
  		Service ->
  			Body = mochijson:encode(service(Service)),
  			Href = ?serviceInventoryPath ++ binary_to_list(Service#service.name),
  			Etag = ocs_rest:etag(Service#service.last_modified),
  			Headers = [{location, Href}, {etag, Etag}],
  
negative.code: 			C1
  	end,
  	NewChars = C2 ++ Chars,
  	inventory(T, Service, NewChars, Acc);
  inventory([_ | T], Service, Chars, Acc) ->
  	inventory(T, Service, Chars, Acc);
  inventory([], _Service, [], Acc) ->
  	{struct, lists:reverse(Acc)};
  inventory([], _Service, Chars, Acc) ->
  	NewAcc = [{"serviceCharacteristic", service_chars(Chars)} | Acc],
  	{struct, lists:reverse(NewAcc)}.
  
  