anchor.diff:  %%----------------------------------------------------------
   %% Internal Methods
   %%----------------------------------------------------------
  +
  +maybe_record_visit(RD, {path, Record}) ->
  +    Loc = erli_utils:get_location(wrq:peer(RD)),
  +    Visit = #visit{path_id=Record#path.id, geo_location=Loc},
  +    erli_storage:create(Visit);
  +maybe_record_visit(_RD, _) ->
  +    ignore.
   
   -spec handle_post(proplist(), #wm_reqdata{}, {targets, collection_data()}) ->
   			 {true | {halt, 422}, #wm_reqdata{},
  
positive.code: 	    Body = jsx:encode([{<<"formErrors">>, Errors}]),
  	    NRD = erli_utils:add_json_response(RD, Body),
  	    {{halt, 422}, NRD, Ctx}
      end;
  handle_post(Form, RD, {visits, {_Meta, _Collection}}=Ctx) ->
      case erli_forms:validate(Form, [{<<"path_id">>,
  				     [required, is_path_id]}]) of
  	valid ->
  	    Visit = build_record(visit, [{<<"ip">>, wrq:peer(RD)}|Form]),
  	    maybe_store(visits, Visit, RD, Ctx);
  	Errors ->
  	    Body = jsx:encode([{<<"formErrors">>, Errors}]),
  	    NRD = erli_utils:add_json_response(RD, Body),
  	    {{halt, 422}, NRD, Ctx}
      end.
  
  
  
negative.code: 
  
  as_json(RD, {ObjectType, Rec}=Ctx) when ?is_object(ObjectType) ->
      maybe_record_visit(RD, Ctx),
      CollectionType = obj_type_to_col_type(ObjectType),
      Key = atom_to_binary(CollectionType, latin1),
      Data = jsx:encode([{Key, erli_utils:to_proplist(Rec)}]),
  