anchor.diff:  
   
   generate_etag(RD, Ctx) ->
  -    {"", RD, Ctx}.
  +    Etag = mochihex:to_hex(erlang:md5(Ctx)),
  +    {Etag, RD, Ctx}.
   
   
   content_types_provided(RD, Ctx) ->
  
positive.code: 
  
  as_json(RD, Ctx) ->
      Data = jsx:encode([{<<"title">>, <<"erli API">>},
  		      {<<"description">>,
  		       <<"simple REST API to the erli URL shortening service">>},
  		      {<<"rels">>, [{<<"visits">>, <<"/api/visits/">>},
  				    {<<"paths">>, <<"/api/paths/">>},
  				    {<<"targets">>, <<"/api/targets">>}]}]),
      {Data, RD, Ctx}.
  
negative.code: %%-----------------------------------------------------------
  
  init(_Options) ->
      Data = jsx:encode([{<<"title">>, <<"erli API">>},
  		       {<<"description">>,
  			<<"simple REST API to the erli URL shortening service">>},
  		       {<<"rels">>, [{<<"visits">>, <<"/api/visits/">>},
  				     {<<"paths">>, <<"/api/paths/">>},
  				     {<<"targets">>, <<"/api/targets">>}]}]),
      {ok, Data}.
  
  
  allowed_methods(RD, Ctx) ->
  